A protocol driver or intermediate driver calls the NdisOffloadTcpReceiveReturn function to return ownership of NET_BUFFER_LIST and associated structures to an underlying offload target.
VOID NdisOffloadTcpReceiveReturn( _In_ NDIS_HANDLE NdisBindingHandle, _In_ PNET_BUFFER_LIST NetBufferList );
- NdisBindingHandle [in]
The handle that NDIS provided at the NdisBindingHandle parameter of the NdisOpenAdapterEx function. This handle identifies the binding between the caller and the underlying intermediate driver or offload target.
- NetBufferList [in]
A pointer to a NET_BUFFER_LIST structure. This structure can be a stand-alone structure or the first structure in a linked list of NET_BUFFER_LIST structures. The linked list can contain NET_BUFFER_LIST structures from one or more calls to the NdisTcpOffloadReceiveHandler function.
The NdisOffloadTcpReceiveReturn function always returns NDIS_STATUS_SUCCESS. The receive return operation is always completed synchronously.
In response to a call to its MiniportTcpOffloadReceiveReturn function, an intermediate driver calls the NdisOffloadTcpReceiveReturn function to propagate the receive return operation to the underlying intermediate driver or offload target. For more information, see Propagating I/O Operations.
To the NdisOffloadTcpReceiveReturn function, the intermediate driver passes the following:
An NdisOffloadHandle function that references the NDIS_OFFLOAD_HANDLE structure stored in the intermediate driver's context for the offloaded TCP connection. For more information, see Referencing Offloaded State Through an Intermediate Driver.
The same PNET_BUFFER_LIST pointer that NDIS passed to the intermediate driver's MiniportTcpOffloadReceiveReturn function.