Export (0) Print
Expand All

4.2 Example of a Multi-Packet Message

The following example shows the structure of a REMOTE_NDIS_PACKET_MSG message containing two packets, the first with a payload of 30 bytes and the second with a payload of 20 bytes. During initialization, through a REMOTE_NDIS_INITIALIZE_CMPLT message, the device specified the values of MaxPacketsPerTransfer to be 0x00000004, MaxTransferSize to be 0x00001000 (4096), and PacketAlignmentFactor to be 0x00000004. The PacketAlignmentFactor field indicates that 16-byte alignment is required between the multiple-packets, excluding the last, which requires 6-byte padding at the end of the first REMOTE_NDIS_PACKET_MSG message in the example.

Multi-packet REMOTE_NDIS_PACKET_MSG


0

1

2

3

4

5

6

7

8

9
1
0

1

2

3

4

5

6

7

8

9
2
0

1

2

3

4

5

6

7

8

9
3
0

1

MessageType=0x00000001

MessageLength=0x00000050

DataOffset=0x00000024

DataLength=0x0000001E

OutOfBandDataOffset=0x00000000

OutOfBandDataLength=0x00000000

NumOutOfBandDataElements=0x00000000

PerPacketInfoOffset=0x00000000

PerPacketInfoLength=0x00000000

Reserved(low 32 bit)=0x00000000

Reserved(high 32 bit)=0x00000000

Payload(30 bytes)

Padding(6 bytes)

MessageType=0x00000001

MessageLength=0x00000040

DataOffset=0x00000024

DataLength=0x00000014

OutOfBandDataOffset=0x00000000

OutOfBandDataLength=0x00000000

NumOutOfBandDataElements=0x00000000

PerPacketInfoOffset=0x00000000

PerPacketInfoLength=0x00000000

Reserved(low 32 bit)=0x00000000

Reserved(high 32 bit)=0x00000000

Payload(20 bytes)

 
Show:
© 2015 Microsoft