NdisMTerminateOffloadComplete function (ndischimney.h)
[The TCP chimney offload feature is deprecated and should not be used.]
An offload target calls the NdisMTerminateOffloadComplete function to complete a terminate offload operation that was initiated by a previous call to the MiniportTerminateOffload function of the offload target.
Syntax
void NdisMTerminateOffloadComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);
Parameters
[in] NdisMiniportHandle
The handle that the offload target obtained in a previous call to NdisMRegisterMiniportDriver.
[in] OffloadBlockList
A pointer to an NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure. The offload target obtained this pointer as an input parameter to its MiniportTerminateOffload function.
Return value
None
Remarks
Before calling the NdisMTerminateOffloadComplete function, the offload target must write either of the following NDIS_STATUS values to the Status member of each NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure in the state tree:
-
NDIS_STATUS_SUCCESS
The offload target successfully terminated the offload of the state object referenced by the NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure. If the NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure is followed by a delegated state structure (XXX_OFFLOAD_STATE_DELEGATED), the offload target successfully wrote the delegated variable values for that state object to the delegated state structure.
-
NDIS_STATUS_FAILURE
The terminate operation did not succeed. Such a failure is caused by a catastrophic failure that resulted in the loss of the state object that was to be terminated. In this case, the offload target hardware might not be responding. The host stack might have to abort the connection.
- Complete any outstanding calls to the MiniportInvalidateOffload, MiniportQueryOffload, MiniportTcpOffloadReceive, MiniportTcpOffloadDisconnect, MiniportTcpOffloadForward, MiniportTcpOffloadSend, and MiniportUpdateOffload functions.
- Ensure that any outstanding calls to the NdisMIndicateStatusEx, NdisMOffloadEventIndicate, NdisTcpOffloadEventHandler, and NdisTcpOffloadReceiveHandler functions have returned.
When passing outstanding send data to the host stack, the offload target must also specify non-NULL values for the following delegated TCP variables for the connection that is being terminated:
- SndUna
- SndNxt
- SndMax
If there is no outstanding send data on a TCP connection that is being terminated, the offload target must specify a NULL value for the NetBufferListChain member.
There might be outstanding receive data on a TCP connection that is being uploaded. This is data that the offload target has received off the wire, processed, and acknowledged. For more information about processing such data, see Handling Buffered Receive Data During a Terminate Offload Operation.
The offload target frees all resources, such as memory, that are associated with the terminated state objects.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | ndischimney.h (include Ndischimney.h) |
IRQL | Any level |