Specify Packet Size for Sends and Receives (NDIS 5.1)

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

Miniport drivers that specify support for 802.1Q might specify different sizes for packets that upper-layer drivers can send to those miniport drivers, as opposed to packets that those miniport drivers receive over the network and subsequently indicate to upper-layer drivers. Miniport drivers specify their support of 802.1Q as described in Query for 802.1Q Support. The following describes how miniport drivers specify packet size for sends and receives:

  • Miniport drivers might place constraints on the size of packets that upper-layer drivers can send to them. For example, a miniport driver might limit, by 4 bytes, the maximum size of packets that upper-layer drivers send so that it can append appropriate priority and VLAN identifier values to those packets and still transit those packets over a legacy network. On the other hand, if transmitted packets are not expected to traverse legacy network equipment, the miniport driver is not required to limit, by 4 bytes, the maximum size of packets that upper-layer drivers send. Miniport drivers limit packet size by 4 bytes because that is the size of 802.1Q packet information as defined by the NDIS_PACKET_8021Q_INFO structure. Miniport drivers use OID_GEN_MAXIMUM_FRAME_SIZE to specify the maximum size of packets that they permit upper-layer drivers to send.

  • Miniport drivers must specify the maximum size of packets that they receive over the network and that they subsequently indicate to upper-layer drivers. Miniport drivers use OID_GEN_MAXIMUM_TOTAL_SIZE to specify the maximum size of packets that their NICs receive and send over the network. Because a miniport driver that supports 802.1Q removes the priority and VLAN-identifier tag headers from some packets that it receives over the network before it indicates those packets to upper-layer drivers, it must specify its maximum total packet length as 4 bytes less than the maximum size of packets that are received or sent over the network. This miniport driver can also receive packets over the network that are not marked with priority values but are still the maximum size that the underlying medium supports. However, the miniport driver can only indicate up packets that are no longer than the size specified by OID_GEN_MAXIMUM_TOTAL_SIZE.

 

 

Send comments about this topic to Microsoft