W_TERMINATE_OFFLOAD_HANDLER callback function (ndischimney.h)

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

The MiniportTerminateOffload function terminates the offload of one or more state objects.

Syntax

W_TERMINATE_OFFLOAD_HANDLER WTerminateOffloadHandler;

void WTerminateOffloadHandler(
  [in]      IN NDIS_HANDLE MiniportAdapterContext,
  [in, out] IN OUT PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
)
{...}

Parameters

[in] MiniportAdapterContext

The handle to an offload-target allocated context area in which the offload target maintains state information about this instance of the adapter. The offload target provided this handle to NDIS when it called NdisMSetMiniportAttributes from its MiniportInitializeEx function.

[in, out] OffloadBlockList

A pointer to an NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure, which can be the root of a linked list of such structures. These structures identify the offloaded state objects that are being terminated.

Return value

None

Remarks

The MiniportTerminateOffload function stores the OffloadBlockList pointer and then returns. The offload target always completes the terminate operation asynchronously by calling the NdisMTerminateOffloadComplete function.

The OffloadBlockList pointer points to an NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure that can be either a stand-alone structure or the root block list in an offload state tree that contains multiple NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structures. Such block lists, as well as any offload state structures that are associated with them, are valid until the miniport driver calls the NdisMTerminateOffloadComplete function.

Each NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure can be immediately followed in memory by a delegated state structure (XXX_OFFLOAD_STATE_DELEGATED). The offload target copies delegated variable values into the delegated state structures supplied by the host stack.

The host stack will not request the termination of the offload of a TCP connection until both of the following conditions are met:

  • All the outstanding invalidate, query, and update requests pertaining to that connection have completed.
  • All outstanding receive and disconnect calls have returned.

Requirements

Requirement Value
Target Platform Windows
Header ndischimney.h (include Ndischimney.h)
IRQL Any level

See also

MiniportInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMSetMiniportAttributes

NdisMTerminateOffloadComplete

TCP_OFFLOAD_STATE_DELEGATED