KMDF Version History
This topic lists versions of Kernel-Mode Driver Framework (KMDF), the corresponding versions of the Windows operating system, and the changes made in each release.
The following table shows the release history of the KMDF library:
|KMDF version||Release method||Included in this version of Windows||Drivers using it run on|
|1.33||WDK for Windows Server 2022, Windows 11 WDK||Windows 11, Windows Server 2022||Windows 11, Windows Server 2022 and later|
|1.31||Windows 10, version 2004 WDK||Windows 10, version 2004 (May 2020 Update, Vibranium)||Windows 10, version 2004 and later|
|1.29||Not released in WDK||Windows 10, version 1903 (March 2019 Update, 19H1)||Windows 10, version 1903 and later|
|1.27||Windows 10, version 1809 WDK||Windows 10, version 1809 (October 2018 Update, Redstone 5)||Windows 10, version 1809 and later|
|1.25||Windows 10, version 1803 WDK||Windows 10, version 1803 (April 2018 Update, Redstone 4)||Windows 10, version 1803 and later|
|1.23||Windows 10, version 1709 WDK||Windows 10, version 1709 (Fall Creators Update, Redstone 3)||Windows 10, version 1709 and later|
|1.21||Windows 10, version 1703 WDK||Windows 10, version 1703 (Creators Update, Redstone 2)||Windows 10, version 1703 and later|
|1.19||Windows 10, version 1607 WDK||Windows 10, version 1607 (Anniversary Update, Redstone 1)||Windows 10 version 1607, Windows Server 2016 and later|
|1.17||Windows 10, version 1511 WDK||Windows 10, version 1511 (November Update, Threshold 2)||Windows 10 version 1511, Windows Server 2016 and later|
|1.15||Windows 10 WDK||Windows 10, version 1507 (Threshold 1)||Windows 10, version 1507, Windows Server 2016 and later|
|1.13||Windows 8.1 WDK||Windows 8.1||Windows 8.1 and later|
|1.11||Windows 8 WDK||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 2000 and later|
|1.5||Windows Vista WDK||Windows Vista||Windows 2000 and later|
|1.1||Download only||None||Windows 2000 and later|
|1.0||Download only||None||Windows XP and later|
You can use the Windows Driver Kit (WDK) with Microsoft Visual Studio 2019 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 a complete list of callbacks and methods, and which frameworks and versions they apply to, see Summary of WDF Callbacks and Methods.
For information about the new features for KMDF drivers in Windows 10, see What's New for WDF Drivers.
KMDF Version 1.33
- 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).
- WDF_POWER_FRAMEWORK_SETTINGS structure has two new members (PoFxDeviceFlags and DirectedPoFxEnabled).
KMDF Version 1.31
- Added new API WdfDeviceSetDeviceInterfaceStateEx
- Improved existing API WdfDeviceGetSystemPowerAction
- Added new API WdfPdoInitRemovePowerDependencyOnParent
- Introduction to the Directed Power Management Framework
KMDF Version 1.29
Unchanged from version 1.25.
KMDF Version 1.27
Unchanged from version 1.25.
KMDF Version 1.25
KMDF Version 1.23
- Companion functionality added for internal use only. For the new DDIs, see Summary of WDF Callbacks and Methods.
KMDF Version 1.21
- WdfFileObjectGetInitiatorProcessId was previously UMDF-only, now available in KMDF.
- WdfRequestGetRequestorProcessId was previously UMDF-only, now available in KMDF.
- WdfObjectDereferenceActual: Type of File parameter changed from PCHAR to PCCH.
- WdfObjectReferenceActual: Type of File parameter changed from PCHAR to PCCH.
KMDF Version 1.19
- Added WdfDmaTransactionSetSingleTransferRequirement
- Added WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER flag in WDF_DMA_ENABLER_CONFIG_FLAGS
- Added STATUS_WDF_TOO_MANY_TRANSFERS return value for WdfDmaTransactionInitialize and WdfDmaTransactionDmaCompleted
- Added output messages for single transfer output to !wdfkd.wdfdmatransaction and !wdfkd.wdfdmaenabler
- For more info about single transfer DMA, see Using Single Transfer DMA.
KMDF Version 1.15
- The new WdfDeviceOpenDevicemapKey method allows a driver to access subkeys and values under HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP.
KMDF Version 1.13
KMDF version 1.13 adds the following functionality:
- 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.
- Support for high resolution timers. For more information, see Using Timers.
- 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.
- The following KMDF/UMDF methods described in Accessing the Unified Device Property Model:
For information about UMDF versions, see UMDF Version History.
KMDF Version 1.11
Version 1.11 adds the following functionality:
Support for passive-level interrupts
Functional power states for multiple components within a single device
The following methods:
Added IdleTimeoutType and ExcludeD3Cold members to WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS.
Added ReportInactiveOnPowerDown member to WDF_INTERRUPT_CONFIG.
Added WdfIoTargetPurged value to WDF_IO_TARGET_STATE.
Added WdfSpecialFileBoot value to WDF_SPECIAL_FILE_TYPE.
Added DbgWaitForSignalTimeoutInSec to Registry Values for Debugging Framework-based Drivers.
KMDF Version 1.9
Version 1.9 adds the following functionality:
Guaranteed forward progress for I/O queues
Support for requeuing I/O requests from a child device's I/O queue to a parent device's I/O queue
Ability to specify queue-level synchronization for individual queue objects.
The following methods:
Added the NumberOfPresentedRequests member to the WDF_IO_QUEUE_CONFIG structure so drivers can limit the number of I/O requests that the framework delivers to the driver from a parallel I/O queue.
Added the WdfFileObjectCanBeOptional flag to the WDF_FILEOBJECT_CLASS structure.
Added the TolerableDelay member to the WDF_TIMER_CONFIG structure.
Added WdfDefaultIdleInWorkingState and WdfDefaultWakeFromSleepState registry values.
KMDF Version 1.7
The WdfDeviceEnqueueRequest method can be called at IRQL<=DISPATCH_LEVEL.
The WdfWorkItemEnqueue method can be called if the specified work item is already on the work-item queue.
Added the EvtDeviceArmWakeFromSxWithReason event callback function.
Added ArmForWakeIfChildrenAreArmedForWake and IndicateChildWakeOnParentWake members to the WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS structure.
KMDF Version 1.5
KMDF Version 1.1
- The following methods:
KMDF Version 1.0