TDI IOCTLs for Transport Drivers
TDI transport drivers respond to the TDI_XXX IOCTL requests issued by their kernel-mode clients that are described here. Each IRP submitted to such a driver's TdiDispatchInternalDeviceControl routine has the MinorFunctionCode member of the transport's I/O stack location set with one of these TDI_XXX codes.
Typically, a transport's TdiDispatchInternalDeviceControl routine performs a switch operation on the TDI_XXX code to route each incoming client request to an internal driver function for further processing.
Some structures mentioned in the TDI_XXX references that follow are described in TDI Structures. For more information about the internal structure of IRPs and accessible members within the file objects referenced in this section, see Handling IRPs.
The TDI_XXX codes described in this section are in alphabetic order.
User-Mode Application Calls
If a user-mode application calls the DeviceIoControl function with one of the TDI_XXX codes, different requests than described in this section can be sent by the I/O Manager and other operating system components, or by kernel-mode drivers.
For example, if a user-mode application calls the DeviceIoControl function with a TDI_QUERY_INFORMATIONrequest, IrpSp->MajorFunction specifies IRP_MJ_DEVICE_CONTROLinstead of IRP_MJ_INTERNAL_DEVICE_CONTROL.
For information, see DeviceIoControlin the Microsoft Windows SDK Library.
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).