ClientEventSendPossible

TDI_STATUS
    ClientEventSendPossible (
        IN PVOID  TdiEventContext,
        IN PVOID  ConnectionContext,
        IN ULONG  BytesAvailable
        );

ClientEventSendPossible 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.

Parameters

TdiEventContext
Points to the client-supplied context provided in the IRP that was set up with TdiBuildSetEventHandler when ClientEventSendPossible was registered with the underlying transport.
ConnectionContext
Points 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
Specifies the number of bytes currently available in the TDI driver for buffering client-supplied send data.

Return Value

ClientEventSendPossible can return STATUS_SUCCESS.

Comments

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 can be called at IRQL DISPATCH_LEVEL.

See Also

TdiBuildSend, TdiBuildSetEventHandler, TDI_SEND