NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ndischimney.h

NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE NdisTcpOffloadReceiveComplete;

VOID NdisTcpOffloadReceiveComplete(
  [in] IN NDIS_HANDLE NdisMiniportHandle,
  [in] IN PNET_BUFFER_LIST NetBufferList
)
{...}
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nc-ndischimney-ndis_tcp_offload_receive_complete)

NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE callback function

Description

[The TCP chimney offload feature is deprecated and should not be used.]

An offload target calls the NdisTcpOffloadReceiveComplete function to return posted receive requests (receive buffers) to the host stack. The offload target previously received the receive requests in one or more calls to its MiniportTcpOffloadReceive function.

Parameters

NdisMiniportHandle [in]

The handle that the offload target obtained in a previous call to the NdisMRegisterMiniportDriver function.

NetBufferList [in]

A pointer to a NET_BUFFER_LIST structure. This structure can be stand-alone or the first structure in a linked list of NET_BUFFER_LIST structures. The offload target obtained these structures in one or more calls to its MiniportTcpOffloadReceive function.

Remarks

An offload target should use and return preposted receive requests in the order in which the requests were posted to the MiniportTcpOffloadReceive function of the offload target. That is, the offload target should use and return preposted receive requests in first in, first out (FIFO) order.

An offload target must serialize calls to the NdisTcpOffloadReceiveComplete function and to the NdisTcpOffloadReceiveHandler function on a per -connection basis.

An offload target's MiniportTcpOffloadReceive function can be called in the context of an offload target's call to the NdisTcpOffloadReceiveComplete function. In this case, an offload target must not call the NdisTcpOffloadReceiveComplete function again until the previous call to NdisTcpOffloadReceiveComplete has returned.

To improve system performance, an offload target can create a linked list that contains the NET_BUFFER_LIST structures from multiple calls to its MiniportTcpOffloadReceive function. The offload target can pass such a linked list in a single call to the NdisTcpOffloadReceiveComplete function. Note that, an offload target can distribute the receive requests that were posted in a single call to the MiniportTcpOffloadReceive function across more than one completion call as long the offload target completes the receive requests in the same order that they were posted to the MiniportTcpOffloadReceive function.

Before calling the NdisTcpOffloadReceiveComplete function, the offload target does the following for each NET_BUFFER_LIST structure that it passes to the function:

See also

MiniportTcpOffloadReceive

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart

NdisMRegisterMiniportDriver