A device driver functions as an extension of the Windows operating system. Therefore, driver developers must design the driver carefully to build in reliability, serviceability, and the feature-based functionality needed to support the driver’s device. Device drivers for Windows are implemented as user-mode or kernel-mode drivers.
User-mode drivers: These drivers typically provide an interface between a Win32 application and kernel-mode drivers or other operating system components. In Windows Vista, all printer drivers execute in user mode. By using the user-mode driver framework (UMDF), you can create user-mode drivers that support devices that are based on a protocol or serial bus.
Kernel-mode drivers: These drivers execute as part of the kernel-mode operating system components that manage I/O, Plug and Play, memory, processes and threads, security, and so on. Kernel-mode drivers are typically layered. All kernel-mode drivers supply a set of system-defined standard driver routines.
Some kernel-mode drivers are Windows Driver Model (WDM) drivers that comply with the WDM. Some drivers are kernel-mode driver framework (KMDF) drivers. Other drivers might be based on NDIS or other driver models that are specific to a device class.
For best practices for instrumenting your driver, see About Tools for Verifying and Testing Drivers.
Choosing a Driver Model
The Windows Roadmap for Drivers describes the recommended driver model for each device class and lists the recommended solutions for each port or adapter class. |
64-bit Driver Guidelines
Windows driver development models and tools are the same for 32-bit and 64-bit drivers, with some added guidelines for addressing physical memory and safe programming practices. |
Windows Vista Driver Development
Both Windows Server 2008 and Windows Vista introduced advances in operating system internals and new device-class driver capabilities that streamline development and advance reliability and security. |
File System Filter Drivers
The Installable File System (IFS) Kit is part of the Windows Driver Kit, but we have some additional tips and resources to help you develop file system filters. |