Share via


Porting CoNDIS Miniport Driver Receive Data Handling

CoNDIS 6.0 miniport drivers indicate a linked list of NET_BUFFER_LIST structures to NDIS instead of a linked list of NDIS_PACKET structures. NDIS then forwards the NET_BUFFER_LIST structures to the appropriate overlying drivers.

The CoNDIS 6.0 interfaces for indicating received data are very similar to that of CoNDIS 5.x. For example, NDIS 5.x miniport drivers call the NdisMCoIndicateReceivePacket function to indicate an NDIS_PACKET and CoNDIS 6.0 miniport drivers call the NdisMCoIndicateReceiveNetBufferLists function to indicate a linked list of NET_BUFFER_LIST structures.

If a miniport driver sets the NDIS_RECEIVE_FLAG_RESOURCES flag in the CoReceiveFlags parameter of NdisMCoIndicateReceiveNetBufferLists, the driver can reclaim ownership of the NET_BUFFER_LIST structures as soon as NdisMCoIndicateReceiveNetBufferLists returns. If the miniport driver clears the NDIS_RECEIVE_FLAG_RESOURCES flag for the CoReceiveFlags parameter, NDIS returns ownership of the NET_BUFFER_LIST structure by calling the miniport driver's MiniportReturnNetBufferLists function. This call is analogous to calling an NDIS 5.x miniport driver's MiniportReturnPacket function.

For more information about how CoNDIS miniport drivers handle receive data, see Receiving NET_BUFFER Structures in CoNDIS Drivers.