TDI Drivers (NDIS 5.1)
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.The Transport Driver Interface (TDI) defines a kernel-mode network interface that is exposed at the upper edge of transport protocol stacks (see the following figure).
TDI clients, which are kernel-mode drivers, such as Redirector and Server, interface with such transports through TDI. TDI simplifies the task of developing transport drivers in that only the TDI interface needs to be coded. It also simplifies the task of developing clients by minimizing the amount of transport-specific code that must be written.
Transport drivers that expose only the TDI interface can be used only by TDI clients. To provide increased access to such transports, Microsoft Windows 2000 and later versions include emulator modules for two popular existing network interfaces, Windows Sockets and NetBIOS. Each of these emulator modules exposes its native set of functions, which are accessible through standard call mechanisms in user mode. When called, the emulator module maps the native function and its associated parameters and procedural rules to one or more TDI functions, and then calls the indicated transport driver through TDI.
For increased performance, the TCP/IP and IPX/SPX transport drivers are implemented as native TDI transport drivers.