1.2.2 Transport Drivers

A transport driver implements a network protocol stack such as IPX/SPX or TCP/IP, offering its services over one or more network interface cards.This transport driver services application-layer clients at its upper edge and connects to one or more NIC driver(s) or intermediate NDIS driver(s) at its lower edge.

Windows NT transport drivers are written to comply with the TDI at their upper edge, and make use of the NDIS interface library (the ndis.sys export library) for communicating with NIC drivers at their lower edge. TDI describes a low-level network interface that is exposed at the upper edge of all Windows NT transport drivers. Requiring that all Windows NT transport drivers expose a single common interface (TDI) simplifies the task of developing transport drivers because only that interface needs to be coded. However, because transport drivers expose only the TDI interface, they can be used only by applications that use TDI. Because TDI is a relatively new network interface, and most existing applications are written to use other existing standard interfaces, such as NetBIOS and Sockets, Windows NT includes emulator modules for two popular existing network interfaces, NetBIOS and Sockets.

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. Windows NT provides a Streams environment to enable quick and easy porting of existing Streams-based transport drivers from other environments to this Windows NT native environment.