NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE callback function (ndischimney.h)
[The TCP chimney offload feature is deprecated and should not be used.]
An offload target calls the NdisTcpOffloadDisconnectComplete function to complete a disconnect request that was initiated by a previous call to the MiniportTcpOffloadDisconnect function of the offload target.
Syntax
NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE NdisTcpOffloadDisconnectComplete;
void NdisTcpOffloadDisconnectComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNET_BUFFER_LIST NetBufferList
)
{...}
Parameters
[in] NdisMiniportHandle
The handle that the offload target obtained in a previous call to the NdisMRegisterMiniportDriver function.
[in] NetBufferList
A pointer to a single NET_BUFFER_LIST structure. The offload target obtained this pointer as an input parameter to its MiniportTcpOffloadDisconnect function.
Return value
None
Remarks
Completing an Abortive Disconnect
If the offload target issued an abortive disconnect, it must do the following before calling the NdisTcpOffloadDisconnectComplete function:
- Complete all outstanding send requests on the connection with a status value of NDIS_STATUS_REQUEST_ABORTED. The offload target writes this status value to the Status member of each NET_BUFFER_LIST structure in the linked list that it passes to the NdisTcpOffloadSendComplete function.
- Write a status value to the Status member of the NET_BUFFER_LIST structure pointed to by the NetBufferList pointer. A status value of NDIS_STATUS_SUCCESS indicates that the offload target successfully sent the RST segment. For a description of the allowable status values, see NET_BUFFER_LIST.
Before completing a graceful disconnect request, the offload target must:
-
Write a status value to the
Status member of the NET_BUFFER_LIST structure that it passes to the
NdisTcpOffloadDisconnectComplete function:
- A value of NDIS_STATUS_SUCCESS indicates that the FIN segment, as well as any user data, was successfully sent by the offload target and was also acknowledged by the remote host.
- A value of NDIS_STATUS_UPLOAD_IN_PROGRESS indicates that the TCP connection referenced by NdisMiniportHandle is being uploaded.
- A value of NDIS_STATUS_REQUEST_ABORTED indicates that the FIN segment and/or any user data were not successfully transmitted by the offload target and acknowledged by the remote host. The host stack will eventually terminate the offload of the TCP connection.
- Specify the number of user data bytes that were sent and successfully acknowledged. The offload target does this by calling the NET_BUFFER_LIST_INFO macro with an id of TcpOffloadBytesTransferred.
- Call the NdisAdvanceNetBufferDataStart function. The NetBufferList parameter should point to the NET_BUFFER structure associated with the NET_BUFFER_LIST structure that the offload target passes to the NdisTcpOffloadDisconnectComplete function. The DataOffsetDelta parameter should specify the number of data bytes from the NET_BUFFER structure that were both transmitted by the offload target and also successfully acknowledged by the remote host. The FreeMdl parameter should be NULL.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | ndischimney.h (include Ndischimney.h) |