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. |