TDI driver essentially provides the interface where the intercept traffic and the network stack can interact. Before Windows Vista, transfer driver interface or TDI has been used for Winsock2 application programming interface to allow the latter to communicate via TCP/IP. In other words, this driver interface allowed the user to send and receive data through TCP/IP stack. But with the introduction of Windows Vista, the transfer driver has slowly become a legacy technology. Apart from that, this interface also has some inherent shortcomings which include a steeper learning curve and performance degradation.

The TDI driver can be used for various types of network communication protocols. This driver interface was developed by Microsoft with the intention of providing a more functional and flexible transport protocol interface. The transport driver interface provides a direct interface for all Windows 2000 providers. This driver interface can describe all the call mechanisms and functions through which transport drivers can communicate with clients. But as Windows Vista is becoming widely used, Winsock Kernel (WSK) has become the network programming interface of choice when performing network I/O in kernel mode. WSK is slowly but surely taking the center stage in netw
ork application programming interface.

For new clients categorized under kernel mode, Winsock Kernel is a more preferable interface than TDI driver. Apparently, WSK is even more flexible and user-friendly than transport driver interface. While it is true that TDI is still supported in Windows Vista setting, moving to WSK should be implemented if you want to take full advantage of the new generation of stacks. Besides, continuously using transport driver interface in Windows Vista can result in a significant degradation in terms of performance. It should also be emphasized that currently there are no new functionalities being developed for use with TDI, so the capabilities of this driver interface will become more limited in the days to come.

Still, the TDI driver has been widely regarded as a worthy predecessor to Winsock
Kernel interface technology. But if you need a new network programming interface that supports Windows Vista and does not rely on transport interface, WSK is the way to go. This type of interface allows software modules in kernel mode to communicate with networks through an interface that is very similar to socket programming used in Winsock2 user mode. Most importantly, using WSK affords the client to use only one network programming interface. This means, you never have to use TDI for some protocols. It's that simple.