Training
Module
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
This topic compares the functionality available to a Kernel-Mode Driver Framework (KMDF) driver with that available to a User-Mode Driver Framework (UMDF) 2 driver. It is designed to help you decide whether you should write a UMDF 2 driver or a KMDF driver.
While UMDF version 2 offers a significant subset of functionality that was previously available only to KMDF drivers, the following features are available only to KMDF drivers. If your driver requires one of these features, you must write a KMDF driver.
Feature | Related information |
---|---|
Direct memory access (DMA) | Handling DMA Operations in KMDF Drivers |
Bus enumeration | Enumerating the Devices on a Bus |
Functional power states (limited support is available in UMDF) | Supporting Functional Power States |
Access to WDM objects and IRPs | Obtaining WDM Information |
Neither Buffered Nor Direct I/O | |
Internal device control requests (IOCTLs) | |
Remove lock opt-in for I/O requests | WdfDeviceInitSetRemoveLockOptions |
WMI | Introduction to WMI for KMDF Drivers |
If your driver does not require any of the above, you can write a UMDF 2 driver instead of using KMDF. Because the two frameworks share many interfaces, you can convert your driver to KMDF later if the need arises. For information about why you might want to choose UMDF, see Advantages of Writing UMDF Drivers.
For more information about the framework objects and which are supported by KMDF and UMDF, see Summary of Framework Objects.
For a table showing all Windows Driver Frameworks (WDF) callbacks and methods and their framework applicability, see Summary of WDF Callbacks and Methods.
Training
Module
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
Documentation
How to Convert a KMDF Driver to a UMDF 2 Driver (And Vice-Versa) - Windows drivers
This topic describes how to convert a Kernel-Mode Driver Framework (KMDF) driver into a User-Mode Driver Framework (UMDF) version 2 driver, and vice-versa.
Advantages of Writing UMDF Drivers - Windows drivers
This topic describes the advantages of writing a User-Mode Driver Framework (UMDF) driver instead of a kernel-mode driver.
Getting Started with UMDF - Windows drivers
This section describes User-Mode Driver Framework (UMDF) and details the differences between UMDF versions 1 and 2.