NDIS_SET_PACKET_HEADER_SIZE(
IN PNDIS_PACKET Packet,
IN UINT HdrSize
);
NDIS_SET_PACKET_HEADER_SIZE sets the HeaderSize value in the out-of-band data block associated with a given packet descriptor for a subsequent receive indication.
Parameters
Packet
Points to a driver-allocated packet descriptor.
HdrSize
Specifies the medium-specific number of bytes in the net packet header.
Comments
The HeaderSize member in the NDIS_PACKET_OOB_DATA block associated with a packet descriptor specifies the number of bytes of medium-specific header in the buffer mapped by the initial buffer descriptor chained to the packet descriptor.
A lower-level driver sets this value with NDIS_SET_PACKET_HEADER_SIZE in the out-of-band data blocks for the receive packets it will subsequently indicate with NdisMIndicateReceivePacket. Typically, a miniport sets the HeaderSize once for each packet descriptor it allocates with NdisAllocatePacket for subsequent receive indications, depending on the medium it selected during initialization. If such a driver clears the out-of-band data block with NDIS_OOB_DATA_FROM_PACKET and NdisZeroMemory when it regains ownership of its receive packet descriptors, that driver must call NDIS_SET_PACKET_HEADER_SIZE before it reuses each packet descriptor in a subsequent indication.
When such an indication is made, bound protocols can retrieve this information with the NDIS_GET_PACKET_HEADER_SIZE macro.
Callers of NDIS_SET_PACKET_HEADER_SIZE run at IRQL <= DISPATCH_LEVEL.
See Also
MiniportHandleInterrupt, MiniportInitialize, MiniportReturnPacket, MiniportTimer, NdisAllocatePacket, NDIS_GET_PACKET_HEADER_SIZE, NdisMIndicateReceivePacket, NDIS_OOB_DATA_FROM_PACKET, NDIS_PACKET_OOB_DATA, NdisSend, NdisSendPackets, NdisZeroMemory, ProtocolReceive, ProtocolReceivePacket