TDI Operations
This section describes TDI run-time operations. Clients of PnP-aware transports for Windows 2000 and later use the protocol-specific network addresses currently registered with TDI to establish connections across the network when they begin the operations described here. For more information about PnP-aware TDI transports and their clients, see also TDI Transports and Their Clientsand TDI Routines, Macros, and Callbacks.
Many TDI run-time 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 represented by a file object
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 topics describe the main TDI operations, as much as possible in the same order as these operations are likely to occur:
Packaging and Submitting IOCTL Requests
Setting and Querying Information
Making an Endpoint-to-Endpoint Connection
Sending and Receiving Connection-Oriented Data
Sending and Receiving Connectionless Data
Connection-Oriented Versus Connectionless Transfers
Requesting Transport-Specific Actions
Disconnecting an Endpoint-to-Endpoint Connection
Closing a Transport Address or Control Channel
For more detailed information about the TDI, transport, and client routines mentioned in this section, see TDI Transport Driver Dispatch Routinesand TDI Client Event and PnP Notification Handlers.
For more detailed information about the support routines, such as ZwCreateFile and IoCallDriver , see ZwXxx Routinesand I/O Manager Routines.
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).