NdisOffloadTcpDisconnect function

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_  PNDIS_OFFLOAD_HANDLE NdisOffloadHandle,
  _In_  PNET_BUFFER_LIST NetBufferList,
  _In_  ULONG Flags
);

Parameters

NdisOffloadHandle [in]

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.

NetBufferList [in]

A pointer to a single NET_BUFFER_LIST structure. Only one NET_BUFFER structure is associated with this NET_BUFFER_LIST structure.

Flags [in]

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

Header

Ndischimney.h (include Ndischimney.h)

See also

MiniportTcpOffloadDisconnect
NDIS_OFFLOAD_HANDLE
NET_BUFFER
NET_BUFFER_LIST
NdisTcpOffloadDisconnectComplete
ProtocolTcpOffloadDisconnectComplete

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft