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.