NdisOffloadTcpDisconnect function (ndischimney.h)

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

A protocol or intermediate driver calls the NdisOffloadTcpDisconnect function to close the send half of an offloaded TCP connection. In addition, if the disconnect to be performed is a graceful disconnect, the protocol or intermediate driver can supply application data that the underlying offload target must transmit on the offloaded TCP connection before it sends a FIN segment.

Syntax

NDIS_STATUS NdisOffloadTcpDisconnect(
  [in] IN PNDIS_OFFLOAD_HANDLE NdisOffloadHandle,
  [in] IN PNET_BUFFER_LIST     NetBufferList,
  [in] IN ULONG                Flags
);

Parameters

[in] NdisOffloadHandle

A pointer 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 single NET_BUFFER_LIST structure. Only one NET_BUFFER structure is associated with this NET_BUFFER_LIST structure.

[in] Flags

As one of the following values, the type of disconnect to be performed:

TCP_DISCONNECT_ABORTIVE_CLOSE

Specifies that the offload target perform an abortive disconnect by sending an RST segment.

TCP_DISCONNECT_GRACEFUL_CLOSE

Specifies that the offload target perform a graceful disconnect by sending a FIN segment.

Return value

The NdisOffloadTcpDisconnect function always returns NDIS_STATUS_PENDING. The disconnect operation is always completed asynchronously.

Remarks

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

To the NdisOffloadTcpXxx 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 MiniportTcpOffloadDisconnect function.
  • The same Flags that NDIS passed to the intermediate driver's MiniportTcpOffloadDisconnect function.
When the underlying driver or offload target subsequently completes the disconnect operation by calling the NdisTcpOffloadDisconnectComplete function, NDIS calls the intermediate driver's ProtocolOffloadDisconnectComplete function. The intermediate driver then calls the NdisTcpOffloadDisconnectComplete function to propagate the completion of the disconnect operation.

Requirements

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

See also

MiniportTcpOffloadDisconnect

NDIS_OFFLOAD_HANDLE

NET_BUFFER

NET_BUFFER_LIST

NdisTcpOffloadDisconnectComplete ProtocolTcpOffloadDisconnectComplete