NdisOffloadTcpReceive function (ndischimney.h)

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

A protocol driver or an intermediate driver calls the NdisOffloadTcpReceive function to post receive requests (receive buffers) on an offloaded TCP connection.

Syntax

NDIS_STATUS NdisOffloadTcpReceive(
  [in] IN PNDIS_OFFLOAD_HANDLE NdisOffloadHandle,
  [in] IN PNET_BUFFER_LIST     NetBufferList
);

Parameters

[in] NdisOffloadHandle

A handle to an NDIS_OFFLOAD_HANDLE structure in the caller's context for the offloaded TCP connection. For more information, see Referencing Offloaded State Through an Intermediate Driver.

[in] NetBufferList

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. Each NET_BUFFER_LIST structure in the list describes one NET_BUFFER structure. The NET_BUFFER structure points to a chain of memory descriptor lists (MDLs). The NET_BUFFER_LIST and associated structures are locked so that they remain resident in physical memory. However, they are not mapped into system memory.

Return value

The NdisOffloadTcpReceive function always returns NDIS_STATUS_PENDING. The receive operation is always completed asynchronously.

Remarks

In response to a call to its MiniportTcpOffloadReceive function, an intermediate driver calls the NdisOffloadTcpReceive function to propagate the receive operation to the underlying intermediate driver or offload target. For more information, see Propagating I/O Operations.

To the NdisOffloadTcpReceive 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 MiniportTcpOffloadReceive function.
When the underlying driver or offload target subsequently completes the receive operation by calling the NdisTcpOffloadReceiveComplete function, NDIS calls the intermediate driver's ProtocolOffloadReceiveComplete function. The intermediate driver then calls the NdisTcpOffloadReceiveComplete function to propagate the completion of the forward operation.

Requirements

Requirement Value
Target Platform Universal
Header ndischimney.h (include Ndischimney.h)
Library Ndis.lib

See also

MiniportTcpOffloadReceive

NDIS_OFFLOAD_HANDLE

NET_BUFFER

NET_BUFFER_LIST

NdisTcpOffloadReceiveComplete ProtocolTcpOffloadReceiveComplete