4.3 TDI IOCTL Requests
As already mentioned in the preceding section, 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 client-supplied event 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.