Porting NDIS Miniport Driver Receive Data Handling
NDIS 6.0 miniport drivers indicate to NDIS a linked list of NET_BUFFER_LIST structures instead of NDIS_PACKET structures. NDIS forwards the NET_BUFFER_LIST structures to the appropriate overlying drivers.
With the exception of indicating the completion status of a receive operation in a NET_BUFFER_LIST structure, the semantics of indicating data is very similar to that of NDIS 5.x miniport drivers that call the NdisMIndicateReceivePacket function. An NDIS 6.0 miniport driver calls the NdisMIndicateReceiveNetBufferLists function to indicate a linked list of NET_BUFFER_LIST structures.
If the miniport driver sets the Status member of the NET_BUFFER_LIST structure to NDIS_STATUS_RESOURCES, it can reclaim ownership of the NET_BUFFER_LIST structures as soon as NdisMIndicateReceiveNetBufferLists returns. If the miniport driver sets the Status member of the NET_BUFFER_LIST structure to NDIS_STATUS_SUCCESS, NDIS returns ownership of the NET_BUFFER_LIST structure by calling the miniport driver's MiniportReturnNetBufferLists function. This is analogous to calling an NDIS 5.x miniport driver's MiniportReturnPacket function.
For more information about miniport driver receive handling, see Indicating Received Data from a Miniport Driver.