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.
The following table shows the release history of the UMDF library. You can use the In this article sidebar on the right to navigate quickly to a specific version.
UMDF version | Initial release | Included in | Drivers using this UMDF version run on |
---|---|---|---|
2.33 | Windows 11, version 21H2 WDK; WDK for Windows Server 2022 | Windows 11, version 24H2; Windows 11, version 23H2; Windows 11, version 22H2; Windows 11, version 21H2; Windows Server 2022 | Windows 11, version 21H2 and later; Windows Server 2022 and later |
2.31 | Windows 10, version 2004 WDK | Windows 10, version 2004 (May 2020 Update, Vibranium) | Windows 10, version 2004 and later |
2.29 | Not released in WDK | Windows 10, version 1903 (March 2019 Update, 19H1) | Windows 10, version 1903 and later |
2.27 | Windows 10, version 1809 WDK | Windows 10, version 1809 (October 2018 Update, Redstone 5) | Windows 10, version 1809 and later |
2.25 | Windows 10, version 1803 WDK | Windows 10, version 1803 (April 2018 Update, Redstone 4) | Windows 10, version 1803 and later |
2.23 | Windows 10, version 1709 WDK | Windows 10, version 1709 (Fall Creators Update, Redstone 3) | Windows 10, version 1709 and later |
2.21 | Windows 10, version 1703 WDK | Windows 10, version 1703 (Creators Update, Redstone 2) | Windows 10, version 1703 and later |
2.19 | Windows 10, version 1607 WDK | Windows 10, version 1607 (Anniversary Update, Redstone 1) | Windows 10, version 1607, Windows Server 2016 and later |
2.17 | Windows 10, version 1511 WDK | Windows 10, version 1511 (November Update, Threshold 2) | Windows 10, version 1511, Windows Server 2016 and later |
2.15 | Windows 10 WDK | Windows 10, version 1507 (Threshold 1) | Windows 10, version 1507, Windows Server 2016 and later |
2.0 | Windows Driver Kit (WDK) 8.1 | Windows 8.1 | Windows 8.1 and later |
1.11 | Windows Driver Kit (WDK) 8 | Windows 8 | Windows Vista and later |
1.9 | Windows 7 WDK | Windows 7 | Windows XP and later |
1.7 | Windows Server 2008 WDK | Windows Vista with Service Pack 1 (SP1), Windows Server 2008 | Windows XP and later |
1.5 | Windows Vista WDK | Windows Vista | Windows XP and later |
You can use the Windows Driver Kit (WDK) with Microsoft Visual Studio 2022 to build drivers that run on Windows 10 and later.
For help determining what version of WDF to use, see Which framework version should I use?.
For information about the new features for UMDF drivers in Windows 10, see What's New for WDF Drivers.
For each UMDF version section below, the Windows version in which it was released is listed in parentheses.
Latest version - UMDF 2.33 (Windows 11, version 21H2; Windows Server 2022)
- For devices that specify SystemManagedIdleTimeout or SystemManagedIdleTimeoutWithHint in the WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE enumeration, when calling the WdfDeviceStopIdle macro with WaitForD0 set to FALSE, if the device is still in D0 and the idle timeout period has not yet elapsed, WdfDeviceStopIdle returns STATUS_SUCCESS (in previous versions this resulted in a return value of STATUS_PENDING).
- WdfDeviceWdmAssignPowerFrameworkSettings function now supports UMDF.
- WDF_POWER_FRAMEWORK_SETTINGS structure has two new members (PoFxDeviceFlags and DirectedPoFxEnabled) and can now be used with UMDF. For UMDF, only the Size, PoFxDeviceFlags, and DirectedPoFxEnabled members are used. Other fields are ignored and must be set to zero. The framework does this automatically when a UMDF driver calls the WDF_POWER_FRAMEWORK_SETTINGS_INIT function.
UMDF 2.31 (Windows 10, version 2004)
- Added new API WdfDeviceSetDeviceInterfaceStateEx
- Improved existing API WdfDeviceGetSystemPowerAction
- Added per-driver HostProcessDbgBreakOnDriverLoad registry value. For info, see Registry Values for Debugging WDF Drivers.
- Introduction to the Directed Power Management Framework
UMDF 2.29 (Windows 10, version 1903)
Unchanged from version 2.27.
UMDF 2.27 (Windows 10, version 1809)
- Added new API WdfDriverRetrieveDriverDataDirectoryString
UMDF 2.25 (Windows 10, version 1803)
UMDF 2.23 (Windows 10, version 1709)
- Companion functionality added for internal use only. For the new DDIs, see Summary of WDF Callbacks and Methods.
UMDF 2.21 (Windows 10, version 1703)
- WdfObjectDereferenceActual: Type of File parameter changed from PCHAR to PCCH.
- WdfObjectReferenceActual: Type of File parameter changed from PCHAR to PCCH.
- Added WDF registry values ObjectLeakDetectionLimit and ObjectsForLeakDetection for debugging excessive object creation. For more info, see Registry Values for Debugging WDF Drivers.
UMDF 2.19 (Windows 10, version 1607)
There are no changes or additions for UMDF Version 2.19.
UMDF 2.17 (Windows 10, version 1511)
This version adds UMDF support for the following existing interfaces:
- WdfDeviceConfigureWdmIrpDispatchCallback
- EvtDeviceWdmIrpDispatch
- WdfDeviceWdmDispatchIrp
- WdfDeviceWdmDispatchIrpToIoQueue
For more information, see Dispatching IRPs to I/O Queues.
UMDF 2.15 (Windows 10, version 1507)
- 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.
- WDF source code is publicly available from Windows Driver Frameworks. The private symbol files for WDF are available through the Microsoft Symbol Server. Also see Debugging with WDF Source and Video: Debugging your driver with WDF source code.
- Inflight Trace Recorder (IFR) now available. Note this is separate from the framework's event logger. For more info, see Inflight Trace Recorder (IFR) for logging traces and Using Inflight Trace Recorder in KMDF and UMDF Drivers.
- Support for interrupts for GPIO-backed devices. For more information, see Creating an Interrupt Object.
UMDF 2.0 (Windows 8.1)
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:
- EvtRequestImpersonate
- WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE
- WdfDeviceAllocAndQueryInterfaceProperty
- WdfDeviceAssignInterfaceProperty
- WdfDeviceGetDeviceStackIoType
- WdfDeviceGetHardwareRegisterMappedAddress
- WdfDeviceMapIoSpace
- WdfDevicePostEvent
- WdfDeviceQueryInterfaceProperty
- WdfDeviceUnmapIoSpace
- WdfFileObjectGetInitiatorProcessId (added to KMDF 1.21)
- WdfFileObjectGetRelatedFileObject
- WdfRequestGetEffectiveIoType
- WdfRequestGetRequestorProcessId (added to KMDF 1.21)
- WdfRequestGetUserModeInitiatedIo
- WdfRequestImpersonate
- WdfRequestIsFromUserModeDriver
- WdfRequestRetrieveActivityId
- WdfRequestSetActivityId
- WdfRequestSetUserModeDriverInitiatedIo
The following KMDF/UMDF methods described in Accessing the Unified Device Property Model:
Support for the following USB configuration types in WdfUsbTargetDeviceSelectConfigType:
- WdfUsbTargetDeviceSelectConfigTypeSingleInterface
- WdfUsbTargetDeviceSelectConfigTypeMultiInterface
- WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs
Support for querying the following capability types in WdfUsbTargetDeviceQueryUsbCapability:
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
UMDF 1.11 (Windows 8)
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.
The following samples are new in UMDF 1.11: WudfVhidmini, NetNfpProvider.
UMDF 1.9 (Windows 7)
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:
The direct I/O buffer access method
Continuous readers for USB devices
Enhanced support for device interfaces
Enhanced ability to cancel I/O requests
Enhanced access to the registry