Many TDI operations involve an endpoint-to-endpoint connection between a local-node client and a remote-node client. These TDI operations are connection-oriented and include the following:
·Opening a local-node connection endpoint
·Requesting a connection
·Accepting a connection
·Sending connection-oriented data
·Receiving connection-oriented data
·Disconnecting
·Closing a local-node connection endpoint
TDI also permits connectionless communications between nodes on a network. This type of operation does not require the local-node client to establish an endpoint-to-endpoint connection with a remote-node client. They are faster but less reliable than connection-oriented communications. TDI connectionless operations include the following:
·Sending a datagram
·Receiving a datagram
The remaining TDI operations are common to connection-oriented and connectionless communication, including the following:
·Opening a local-node transport address
·Packaging and submitting a request
·Setting and querying information
·Receiving error notification
·Requesting transport-specific actions, if the underlying transport supports any extensions to the TDI interface for its clients
·Closing a previously opened transport address
The following sections describe the main TDI operations, as much as possible in the same order as these operations are likely to occur. See the Network Driver Reference, Part 2, for more detailed information about the TDI, transport, and client routines mentioned here.
See the Kernel-Mode Driver Reference for more detailed information about the support routines, such as ZwCreateFile and IoCallDriver, mentioned here.