Windows Driver Kit: Getting Started with Windows Drivers
Choosing a Driver Model
The Microsoft Windows Driver Kit (WDK) supports several driver models, or sets of interfaces. A driver that is designed to use a particular driver model must use the model's interfaces. The WDK supports the following driver models:
- Windows Driver Model
- Most Windows drivers are kernel-mode drivers that conform to the Windows Driver Model (WDM). WDM drivers use a set of interfaces that enable the driver to communicate with kernel-mode Windows components, such as the I/O manager and the Plug and Play (PnP) manager. For more information about WDM, see Windows Driver Model.
- Kernel-Mode Driver Framework
- Kernel-Mode Driver Framework (KMDF) is a library that you can use to create WDM drivers. KMDF provides a set of interfaces that are easier to use than WDM interfaces. For more information about KMDF, see Getting Started with Kernel-Mode Driver Framework.
- User-Mode Driver Framework
- User-Mode Driver Framework (UMDF) enables you to write user-mode drivers for some types of devices. If UMDF supports your device type, you should write a user-mode driver instead of a kernel-mode driver. For more information about UMDF and the types of devices that UMDF supports, see Introduction to UMDF.
- Device type–specific models
- Drivers for some types of devices must use a driver model that is specific to the device type. These drivers communicate with Microsoft-supplied drivers (such as kernel-mode class or port drivers or user-mode drivers) that provide their own sets of interfaces. To find out if a type-specific driver model exists for your device, see the device-type specific documentation within the Device and Driver Technologies section of the WDK documentation.