TDI IOCTL Requests

As already mentioned in the preceding topic, kernel-mode clients pass TDI IOCTLs in IRPs to the underlying transport driver with calls to IoCallDriver. These requests are passed with a MajorFunctionCode of IRP_MJ_INTERNAL_DEVICE_CONTROL and MinorFunctionCode that specifies one of the following TDI-defined operations:

  • TDI_ACCEPT
    Allows the local-node client to accept an incoming connection offer from a remote-node peer so that it can send and receive connection-oriented data on the network.

  • TDI_ACTION
    Initiates transport-specific extension operations for an address, a connection endpoint, or a control channel.

  • TDI_ASSOCIATE_ADDRESS
    Associates an open connection endpoint with an open local transport address, which is a prerequisite to establishing an endpoint-to-endpoint connection with a remote-node peer process.

  • TDI_CONNECT
    Initiates a connection offer from one endpoint to another on a remote node.

  • TDI_DISASSOCIATE_ADDRESS
    Disassociates a connection endpoint for an inactive connection from its associated address object.

  • TDI_DISCONNECT
    Terminates an established endpoint-to-endpoint connection for the local-node client or acknowledges connection termination initiated by a remote-node peer.

  • TDI_LISTEN
    Passively listens for an incoming connection offer from a remote-node peer process.

  • TDI_QUERY_INFORMATION
    Queries the underlying TDI transport for a specific type of information.

  • TDI_RECEIVE
    Returns all or part of a TSDU received on an endpoint-to-endpoint connection.

  • TDI_RECEIVE_DATAGRAM
    Returns a datagram TSDU on an open transport address.

  • TDI_SEND
    Sends a normal or expedited TSDU to the remote-node peer on an endpoint-to-endpoint connection.

  • TDI_SEND_DATAGRAM
    Sends a datagram to a specified remote-node address.

  • TDI_SET_EVENT_HANDLER
    Registers a ClientEventXxx handler that the transport will call whenever the corresponding network event occurs.

  • TDI_SET_INFORMATION
    Sets a specific type of information in the underlying transport.

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

 

 

 

Send comments about this topic to Microsoft