REMOTE_NDIS_PACKET_MSG

REMOTE_NDIS_PACKET_MSG NDIS 데이터 패킷을 캡슐화하여 단일 데이터 메시지를 형성합니다.

여러 REMOTE_NDIS_PACKET_MSG 요소를 연결하면 멀티패켓 메시지가 형성됩니다. 각 개별 REMOTE_NDIS_PACKET_MSG 구성 요소는 아래에 설명된 대로 생성됩니다. 단일 패킷 메시지의 차이점은 각 REMOTE_NDIS_PACKET_MSG 헤더의 MessageLength 필드에 몇 가지 추가 패딩 바이트가 포함되어 있다는 것입니다. 이러한 패딩 바이트는 마지막 REMOTE_NDIS_PACKET_MSG 제외한 모든 바이트에 추가되므로 후행 REMOTE_NDIS_PACKET_MSG 적절한 바이트 경계에서 시작됩니다. 디바이스에서 호스트로 전송된 메시지의 경우 이 패딩으로 인해 각 REMOTE_NDIS_PACKET_MSG 멀티패켓 메시지의 시작부터 8바이트의 배수인 바이트 오프셋에서 시작됩니다. 호스트가 디바이스에 멀티패켓 메시지를 보내면 디바이스가 지정하는 PacketAlignmentFactor 를 준수합니다.

REMOTE_NDIS_PACKET_MSG 형식은 다음 표에 정의되어 있습니다.

Offset 크기 필드 Description

0

4

MessageType

전송되는 메시지의 유형을 지정합니다. 를 0x1.

4

4

MessageLength

추가된 패킷 데이터, OOB 데이터, 패킷별 정보 데이터 및 내부 및 외부 패딩을 포함한 메시지 길이(바이트)입니다.

8

4

DataOffset

이 메시지의 DataOffset 필드 시작부터 데이터 시작까지의 오프셋(바이트)을 지정합니다. 4의 정수 배수입니다.

12

4

DataLength

이 메시지의 데이터 콘텐츠에 있는 바이트 수를 지정합니다.

16

4

OOBDataOffset

이 메시지의 DataOffset 필드 시작부터 첫 번째 OOB 데이터 레코드의 오프셋(바이트)을 지정합니다. OOB 데이터가 없으면 0으로 설정합니다. 그렇지 않으면 4의 정수 배수입니다.

20

4

OOBDataLength

OOB 데이터의 총 길이를 바이트 단위로 지정합니다.

24

4

NumOOBDataElements

이 메시지의 OOB 레코드 수를 지정합니다.

28

4

PerPacketInfoOffset

REMOTE_NDIS_PACKET_MSG 데이터 메시지의 DataOffset 필드 시작부터 패킷당 첫 번째 정보 데이터 레코드 시작까지의 오프셋을 바이트 단위로 지정합니다. 패킷당 데이터가 없으면 0으로 설정합니다. 그렇지 않으면 4의 정수 배수입니다.

32

4

PerPacketInfoLength

이 메시지에 포함된 패킷당 정보의 총 길이를 바이트 단위로 지정합니다.

36

4

VcHandle

연결 지향 디바이스용으로 예약되어 있습니다. 0으로 설정됩니다.

40

4

예약됨

예약되어 있습니다. 0으로 설정됩니다.

단일 OOB 데이터 레코드의 형식은 다음 표에 표시됩니다.

Offset 크기 필드 Description

0

4

크기

이 OOB 헤더 및 추가된 OOB 데이터 및 안쪽 여백의 길이(바이트)입니다. 4의 정수 배수입니다.

4

4

Type

802.3 디바이스에 대해 정의된 없음

8

4

ClassInformationOffset

이 OOB 데이터 레코드의 시작부터 OOB 데이터 시작까지의 바이트 오프셋입니다.

(N)

...

OOB 데이터

OOB 데이터; 자세한 내용은 Microsoft DDK(Windows 드라이버 개발 키트) 설명서를 참조하세요.

참고 (N)는 ClassInformationOffset 값과 같습니다.

다음 표에서는 패킷별 정보 데이터 레코드의 형식을 정의합니다.

Offset 크기 필드 Description

0

4

크기

패킷당 이 헤더 및 추가된 패킷당 데이터 및 패딩의 길이(바이트)입니다. 이 값은 4의 정수 배수입니다.

4

4

Type

Windows 2000 DDK(드라이버 개발 키트)에 설명된 대로 NDIS_PER_PACKET_INFO_FROM_PACKET 대한 법적 값 중 하나로 설정합니다.

8

4

PerPacketInformationOffset

이 패킷별 정보 데이터 레코드의 시작부터 패킷별 정보 데이터의 시작 부분까지의 바이트 오프셋입니다.

(N)

...

Per-Packet 데이터

Per-Packet 데이터; 자세한 내용은 Windows 2000 DDK 설명서를 참조하세요.

참고 (N)는 PerPacketInformationOffset 값과 같습니다.

설명

각 REMOTE_NDIS_PACKET_MSG 하나 이상의 OOB 데이터 레코드를 포함할 수 있습니다. NumOOBDataElements는 이 메시지의 OOB 데이터 레코드 수를 나타냅니다. OOB 데이터 레코드는 순서대로 표시되어야 합니다. OOBDataLength 필드는 전체 OOB 데이터 블록의 길이(바이트)를 나타냅니다. OOBDataOffset 필드는 DataOffset 필드의 시작부터 OOB 데이터 블록의 시작 부분까지의 바이트 오프셋을 나타냅니다. OOB 패킷 데이터에 대한 자세한 내용은 Windows 2000 DDK의 NDIS 사양을 참조하세요.

여러 OOB 데이터 블록이 REMOTE_NDIS_PACKET_MSG 메시지에 연결된 경우 각 후속 OOB 데이터 레코드는 이전 OOB 레코드의 데이터를 즉시 따라야 합니다.

현재 802.3 디바이스에 대해 정의된 OOB 정보는 없습니다.

각 REMOTE_NDIS_PACKET_MSG 패킷 정보별 데이터 레코드를 하나 이상 포함할 수 있습니다. 패킷별 정보는 TCP 체크섬과 같은 패킷 메타데이터를 전달하는 데 사용됩니다. PerPacketInfoOffset 필드는 DataOffset 필드의 시작부터 패킷별 정보 데이터 레코드의 시작 부분까지의 바이트 오프셋을 나타냅니다. OOBDataLength 필드는 패킷별 정보 데이터 레코드의 바이트 길이를 나타냅니다. 패킷당 정보 데이터에 대한 자세한 내용은 Windows 2000 DDK를 참조하세요.

패킷당 여러 정보 데이터 블록이 있는 경우 각 후속 패킷별 정보 데이터 레코드는 이전 패킷당 정보 레코드의 데이터를 즉시 따라야 합니다.

원격 NDIS 디바이스는 NDIS 데이터 패킷을 통해 데이터를 보내고 받아야 합니다. 디바이스에서 사용하는 버스는 이러한 패킷을 호스트에서 디바이스로, 디바이스에서 호스트로 전달하는 방법을 결정합니다. 공유 메모리이거나 USB, Isoch 및 대량 파이프의 경우일 수 있습니다. NDIS 패킷에는 네트워크를 통해 전송되는 데이터뿐만 아니라 OOB(대역 외) 데이터도 포함될 수 있습니다.

원격 NDIS 디바이스는 데이터 채널에서 REMOTE_NDIS_PACKET_MSG 캡슐화된 NDIS 패킷을 전송합니다. 연결이 없는(예: 802.3) 및 연결 지향(예: ATM) 디바이스는 동일한 패킷 메시지 구조를 사용하여 패킷 처리를 위한 일반적인 코드를 용이하게 합니다. 각 REMOTE_NDIS_PACKET_MSG 메시지에는 단일 네트워크 데이터 단위(예: 이더넷 802.3 프레임)에 대한 정보가 포함됩니다.

대역 외 패킷 데이터 또는 패킷 정보별 데이터에 대한 자세한 내용은 Windows 2000 DDK NDIS 섹션을 참조하세요.

요구 사항

Version

Microsoft Windows XP 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. Windows 2000에서도 재배포 가능 이진 파일로 사용할 수 있습니다.

헤더

Rndis.h(Rndis.h 포함)