Compartir a través de


Porting CoNDIS Protocol Driver Receive Data Handling

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

In CoNDIS 5.x, NDIS calls the ProtocolCoReceivePacket function to indicate received data. In CoNDIS 6.0, NDIS calls the ProtocolCoReceiveNetBufferLists function to indicate a linked list of NET_BUFFER_LIST structures.

If the NDIS_RECEIVE_FLAG_RESOURCES flag in the CoReceiveFlags parameterr that NDIS passes to a protocol driver's ProtocolCoReceiveNetBufferLists function is set, NDIS regains the ownership of the NET_BUFFER_LIST structures immediately after the ProtocolCoReceiveNetBufferLists call returns.

If the NDIS_RECEIVE_FLAG_RESOURCES flag is cleared in the CoReceiveFlags parameter that NDIS passes to a protocol driver's ProtocolCoReceiveNetBufferLists function , the protocol driver can retain ownership of the NET_BUFFER_LIST structures. In this case, the protocol driver must return the NET_BUFFER_LIST structures by calling the NdisReturnNetBufferLists function.

NDIS 6.0 can call the protocol driver's receive entry point at IRQL<= DISPATCH level. In NDIS 5.x and earlier versions, NDIS calls the receive entry point at IRQL = DISPATCH level.

For an overview of receive operations, see Receiving Network Data. For more information about CoNDIS protocol driver receive operations, see Receiving NET_BUFFER Structures in CoNDIS Drivers.