TDI_ACCEPT

Operation

TDI_ACCEPT is a request message a local node client issues to indicate an accept request.

Note TdiBuildAccept is the macro a client uses to fill in the IRP.

When a TDI client makes an accept request, it asks the TDI driver to accept an incoming request to connect from a remote node client to enable network data reception. For normal operation, the client sends an accept request in response to a return from a listen request with the TDI_QUERY_ACCEPT option selected. If the client did not select this option in its listen request, the accept request fails.

Warning The TDI driver can call ClientEventReceive with a receive event before the I/O subsystem formally completes its processing of the accept request.

Along with the request message, the TDI client must provide input and output buffers for the IRP, as well as a status block structure the driver uses to write information about the request. These items are described below. For more information about the members of the IRP related to an accept request, see TdiBuildAccept.

Input

TDI_CONNECTION_INFORMATION structure

Output

TDI_CONNECTION_INFORMATION structure

I/O Status Block

The driver fills in the Status member of the IRP with one of the following TDI status codes:

STATUS_INVALID_CONNECTION
STATUS_SUCCESS

For more information about status codes, see Part II, Chapter 10.

Comments

Most TDI drivers have a time-out feature that prevents communication sequences from hanging when a remote node is down. Therefore, a TDI client must either accept or reject a connection as soon as possible after completion of a listen request. The maximum recommended length of time between client notification of a peer connection request and connection acceptance or rejection by the client is less than one second.

See Also

ClientEventReceive, TDI_CONNECTION_INFORMATION, TdiBuildAccept