Windows NT Device Drivers

April 25, 2008 by
Filed under: Device Drivers 

Device Driver Types

There are several different types of Windows NT device drivers, and understanding these driver types can help you assess which drivers you need and which type you prefer. Device drivers for Windows NT can go into one of three categories, and these are kernel mode device drivers, virtual device drivers, and GDI device drivers, also called Win32 graphics drivers. The type of device driver you will use depends on several different factors. Knowing the different types of device drivers for Windows NT can be a great help if you ever have device driver problems with this system.

Virtual Device Drivers

For Windows NT, virtual device drivers are frequently used. These drivers help the system run an application for another operating system, such as MS-DOS or Win16. Virtual device drivers let 16 bit applications function properly by allowing the application access certain input and output ports. Virtual device drivers also allow the application to get information concerning certain device interrupts and other information needed by the application when the 16 bit application is run on the 32 bit Windows NT.

When a virtual device driver is used, a process is followed to access the virtual device drivers. If you have Windows NT and you attempt to run a Win16 or DOS application, your system first runs a Win32 console application. This application is NTVDM.EXE, and it maps out the guest application into the Windows NT process address space. This will transfer control to the guest application in real mode. This will allow the guest application to function correctly on your Windows NT computer.

GDI Device Drivers

GDI device drivers are also called Win32 Graphics Drivers, or sometimes even Kernel Mode Graphics device drivers, but these should not be confused with Kernel Mode device drivers, which are a completely different type of device driver. These device drivers help implement printer specific and video controller specific aspects of the functions of GDI.

GDI device drivers are written as DLLs. These DLLs are then loaded into the system address space. The routines of the device driver are then called by the routines of the GDI in the Win32K.Sys. These virtual device drivers are completely different from kernel mode device drivers in many ways, even though they both run in the kernel mode. The GDI device driver can normally access the video card, but they can not touch the actual I/O hardware like kernel mode device drivers can.

Kernel Mode Device Drivers

Kernel mode device drivers are needed to implement any I/O requests of specific device aspects. This type of device driver is the only type that can touch the I/O hardware. These drivers have an architecture which is completely different from GDI drivers. Kernel mode device drivers are normally used to implement process or functions that require waiting for an interrupt, waiting for the device to free up and become available, and other things that require waiting by the system. While the driver is waiting, the kernel mode driver will go back to the caller so that the calling function or process can perform other work which parallels that specific operation.

Comments

Comments are closed.