UMDF Version History
This topic lists versions of User-Mode Driver Framework (UMDF), the corresponding versions of the Windows operating system, and the changes made in each release.
UMDF Versions and Operating Systems
The following table shows the release history of the UMDF library:
|UMDF version||Release method||Included in this version of Windows||Drivers using it can run on|
Windows 10, version 1607 WDK
Windows 10, version 1607
Windows 10, version 1607 (all SKUs), Windows Server 2016
Windows 10, version 1511 WDK
Windows 10, version 1511
Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), Windows 10 Mobile, Windows 10 IoT Core (IoT Core), Windows Server 2016
Windows 10 WDK
Windows 10 for desktop editions, Windows 10 Mobile, IoT Core, Windows Server 2016
Windows Driver Kit (WDK) 8.1
Windows 8.1 and later
Windows Driver Kit (WDK) 8
Windows Vista and later
Windows 7 WDK
Windows XP and later
Windows Server 2008 WDK
Windows Vista with Service Pack 1 (SP1), Windows Server 2008
Windows XP and later
Windows Vista WDK
Windows XP and later
You can use the Windows Driver Kit (WDK) 10 with Microsoft Visual Studio 2015 to build drivers that run on Windows 7 and later.
For information about the new features for UMDF drivers in Windows 10, see What's New for WDF Drivers.
UMDF Version 2.19
There are no changes or additions for UMDF Version 2.19.
UMDF Version 2.17
This version adds UMDF support for the following existing interfaces:
For more information, see Dispatching IRPs to I/O Queues.
UMDF Version 2.15
Here is the list of updated DDIs for version 2.15:
The new WdfDeviceOpenDevicemapKey method allows a driver to access subkeys and values under HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP.
A UMDF driver can call WdfIoTargetWdmGetTargetFileHandle to obtain a file handle to the next-lower kernel-mode driver in its stack. The driver can write data to that handle, bypassing the framework's abstractions for sending I/O to the local I/O target.
A UMDF driver can request that the underlying bus driver re-enumerate it. See WdfDeviceSetFailed.
Setting the UmdfDirectHardwareAccess directive is no longer always necessary for devices that have connection resources. See Specifying WDF Directives in INF Files.
UMDF Version 2.0
In addition to the shared functionality described in Getting Started with UMDF, UMDF version 2.0 adds:
- Support for timers that do not wake the system if they expire when the system is in a low-power state. For more information, see Using Timers.
- Added CanWakeDevice member to WDF_INTERRUPT_CONFIG structure to support interrupts that can be used to bring a device from a low-power Dx state back to its fully on D0 state. For more information, see Using an Interrupt to Wake a Device.
Single-component, single-state (F0) power management for UMDF drivers. For more information, see WdfDeviceAssignS0IdleSettings.
Several debugger extension commands in Wdfkd.dll can now be used for UMDF 2.0 drivers as well. The extension library also contains the following new extension commands designed specifically for debugging UMDF 2.0 drivers:
For a list of extension commands and framework applicability, see Debugger Extensions.
The framework's event logger, or In-flight Recorder (IFR) has been updated to work for UMDF 2.0 drivers.
- Other WDF debugger extensions have been updated to work with UMDF 2.0 drivers. For a full list of extension commands, including information about which ones apply to which framework, see Debugger Extensions for WDF Drivers.
- Added WdfIoTargetOpenLocalTargetByFile to WDF_IO_TARGET_OPEN_TYPE to allow UMDF drivers to send driver-created requests to lower targets that require an associated file object. For more information, see the Remarks of WDF_IO_TARGET_OPEN_TYPE.
The following UMDF-only routines:
The following KMDF/UMDF methods described in Accessing the Unified Device Property Model:
For more information, see Accessing the Unified Device Property Model.
Support for the following USB configuration types in WdfUsbTargetDeviceSelectConfigType:
- Support for querying the following capability types in WdfUsbTargetDeviceQueryUsbCapability:
- Added WDF Register/Port Access Functions
UMDF Version 1.11
Version 1.11 adds the following driver-supplied callback interfaces and event callback functions:
Version 1.11 adds the following framework-supplied interfaces:
Version 1.11 adds the following capabilities to UMDF-based drivers:
Added UmdfHostProcessSharing, UmdfDirectHardwareAccess, UmdfRegisterAccessMode, UmdfFileObjectPolicy, and UmdfFsContextUsePolicy directives, described in Specifying WDF Directives in INF Files
Unified property store support, described in Using the Registry in UMDF-based Drivers
IoGetDeviceObjectPointer is integrated to work with UMDF. In prior versions, this routine closes the handle to the device object after taking a reference on the device’s handle. This behavior was incompatible with UMDF’s expectation that the cleanup request on the device object won’t occur until after all the I/O is complete.
Enhanced support for Supporting Idle Power-Down in UMDF-based Drivers. The framework can now put the device in the D3cold power state when the idle timeout period expires. The framework can also cause the device to return to its working (D0) state when the system returns to its working (S0) state.
UMDF Version 1.9
Version 1.9 adds the following driver-supplied callback interfaces:
Version 1.9 adds the following framework-supplied interfaces:
These interfaces add the following capabilities to UMDF-based drivers: