Generated by DeepSeek V3.2| Windows Driver Model | |
|---|---|
| Name | Windows Driver Model |
| Developer | Microsoft |
| Released | 05 May 1998 |
| Operating system | Microsoft Windows |
| Platform | IA-32, x86-64, ARM |
| Genre | Device driver framework |
| License | Proprietary software |
Windows Driver Model. The Windows Driver Model is a framework for device drivers that was introduced by Microsoft with the release of Windows 98 and Windows 2000. It was created to provide a unified driver architecture for both the Windows 9x and Windows NT family of operating systems, simplifying driver development and improving system stability. The model defines a standard set of interfaces and behaviors that drivers must follow to interact correctly with the Windows kernel and hardware abstraction layer.
Introduced to unify the disparate driver ecosystems, it represented a significant shift from the older VxD driver technology used in Windows 95. The primary goal was to enable a single driver binary to run on both consumer and business versions of the Microsoft Windows platform. This initiative was closely tied to the development efforts for Windows 98 and the professional Windows NT 4.0 line. Key architects within Microsoft, including those from the Windows NT team, championed this model to reduce complexity for independent hardware vendors.
The architecture is built upon a layered model within the Windows NT kernel, specifically leveraging the I/O Manager and the Windows Executive. Drivers under this framework are implemented as kernel-mode modules with a specific structure, interacting with the Hardware Abstraction Layer for low-level hardware access. Critical components include the use of I/O request packets for communication and standardized routines for handling interrupts and Direct Memory Access. This design was influenced by the modularity seen in earlier UNIX and VMS operating systems.
It supports several distinct classes of drivers, primarily categorized as function drivers, filter drivers, and bus drivers. A function driver is the main driver for a device, such as a printer or graphics card, while a filter driver can modify the behavior of other drivers, often used for antivirus software or encryption. Bus drivers manage physical or logical busses like PCI or USB. Other specialized types include software drivers and virtual device drivers, which emulate hardware for subsystems like the Virtual DOS machine.
Development traditionally required the Windows Driver Kit, which includes headers, libraries, and essential tools like the Kernel Debugger. The primary programming language is C, and developers must adhere to strict coding guidelines to ensure compatibility with the Windows kernel. Microsoft also provides the Driver Verifier utility to test for common errors and the Windows Hardware Compatibility Program for certification. Important resources for programmers are available through MSDN and partnerships with organizations like the PCI-SIG.
It was succeeded by the Windows Driver Foundation frameworks, namely the Kernel-Mode Driver Framework and the User-Mode Driver Framework, introduced with Windows Vista. These newer models further abstract driver development to enhance security and reliability. The evolution was part of a broader Microsoft initiative codenamed Longhorn, which aimed to overhaul the Windows architecture. Related driver technologies include the Network Driver Interface Specification for networking and the legacy OpenGL installable client driver system for graphics.
Security was a major design consideration, emphasizing the isolation of driver code within the kernel space to prevent unauthorized access to critical system resources. Mechanisms like driver signing, enforced through policies from Microsoft Authenticode, and the Driver Signature Enforcement feature in Windows Vista and later, were implemented to mitigate malware threats. Stability is enforced by rigorous memory management, the use of I/O request packet cancellation, and tools like the Windows Error Reporting service to collect crash data from systems like those used by the National Security Agency.
Category:Microsoft application programming interfaces Category:Device drivers Category:Windows components