1.1 Kinds of Drivers in Windows NT

Within the Windows NT operating system, there are two basic kinds of drivers:

As Figure 1.1 shows, NT includes a number of kernel-mode components with well defined functionality isolated in each component. Those of most interest to NT device driver writers are the Kernel, I/O Manager, Hardware Abstraction Layer (HAL), Configuration Manager, Memory Manager, Executive Support, and Process Structure components. Additional components of interest to some NT driver writers include the Object Manager and Security Reference Monitor. Also of interest to NT file system driver writers is the Cache Manager, which is not shown in Figure 1.1.

Like NT itself, NT drivers are implemented as discrete, modular components with a well defined set of required functionality. All NT drivers have a set of system-defined standard driver routines and some number of internal routines as determined by the driver writer.

There are three basic types of NT drivers. Each type has a slightly different structure and quite different functionality:

Windows NT network drivers also can be classified as one of these types of drivers. For example, an NT server or redirector is a specialized file system driver, a transport driver is a type of intermediate NT driver, and a physical netcard (sometimes called a media access controller) driver is an NT device driver. However, NT provides specialized interfaces and support for network drivers, such as NDIS 3.0 (Network Device Interface Specification, Version 3.0) for drivers of physical net cards.

While this documentation provides some useful overviews and background information for NT file system and network driver writers, it is primarily a design guide for writers of NT device and intermediate drivers. Network driver writers can consult the relevant Windows NT Device Driver Kit (DDK) documentation.