ClientEventSendPossible routine

The ClientEventSendPossible routine is an event handler that the underlying TDI transport, which buffers sends internally but returned STATUS_DEVICE_NOT_READY for this client's preceding TDI_SEND request, calls when the transport has internal buffer space available to accept a resubmitted send request from the client.

Syntax

NTSTATUS ClientEventSendPossible(
  _In_ PVOID TdiEventContext,
  _In_ PVOID ConnectionContext,
  _In_ ULONG BytesAvailable
);

Parameters

  • TdiEventContext [in]
    Pointer to the client-supplied context provided in the IRP that was set up with TdiBuildSetEventHandler when ClientEventSendPossible was registered with the underlying transport.

  • ConnectionContext [in]
    Pointer to the client's context area for this connection endpoint. The client previously supplied this value to its underlying transport when its ClientEventConnect handler accepted a connection offer from the remote-node peer and/or when it opened the connection endpoint with ZwCreateFile.

  • BytesAvailable [in]
    Specifies the number of bytes currently available in the TDI driver for buffering client-supplied send data.

Return value

ClientEventSendPossible can return STATUS_SUCCESS.

Remarks

A call to ClientEventSendPossible indicates that its underlying transport now has buffer space available for sends and how much buffer space it has when the transport makes this call.

However, ClientEventSendPossible cannot necessarily submit a successful nonblocking TDI_SEND request for the full BytesAvailable. For example, another client of the same transport might submit a send that uses the transport's available buffer space before this client's send request reaches the transport.

ClientEventSendPossible must be capable of carrying out its operations at IRQL = DISPATCH_LEVEL.

Note   The TDI feature is deprecated and will be removed in future versions of Microsoft Windows. Depending on how you use TDI, use either the Winsock Kernel (WSK) or Windows Filtering Platform (WFP). For more information about WFP and WSK, see Windows Filtering Platform and Winsock Kernel. For a Windows Core Networking blog entry about WSK and TDI, see Introduction to Winsock Kernel (WSK).

 

Requirements

Target platform

Desktop

Header

Tdikrnl.h (include TdiKrnl.h)

IRQL

DISPATCH_LEVEL (see Remarks section)

See also

TdiBuildSend

TdiBuildSetEventHandler

TDI_SEND

 

 

Send comments about this topic to Microsoft