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. You can use the In this article sidebar on the right to navigate quickly to a specific version.
KMDF version | Initial release | Included in | Drivers using this KMDF version run on |
---|---|---|---|
1.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 |
1.31 | Windows 10, version 2004 WDK | Windows 10, version 2004 | Windows 10, version 2004 and later |
1.29 | Not released in WDK | Windows 10, version 1903 | Windows 10, version 1903 and later |
1.27 | Windows 10, version 1809 WDK | Windows 10, version 1809 | Windows 10, version 1809 and later |
1.25 | Windows 10, version 1803 WDK | Windows 10, version 1803 | Windows 10, version 1803 and later |
1.23 | Windows 10, version 1709 WDK | Windows 10, version 1709 | Windows 10, version 1709 and later |
1.21 | Windows 10, version 1703 WDK | Windows 10, version 1703 | Windows 10, version 1703 and later |
1.19 | Windows 10, version 1607 WDK | Windows 10, version 1607 | Windows 10 version 1607, Windows Server 2016 and later |
1.17 | Windows 10, version 1511 WDK | Windows 10, version 1511 | Windows 10 version 1511, Windows Server 2016 and later |
1.15 | Windows 10 WDK | Windows 10, version 1507 | 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 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 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.
For each KMDF version section below, the Windows version in which it was released is listed in parentheses.
Latest version - KMDF 1.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).
- WDF_POWER_FRAMEWORK_SETTINGS structure has two new members (PoFxDeviceFlags and DirectedPoFxEnabled).
KMDF 1.31 (Windows 10, version 2004)
- Added new API WdfDeviceSetDeviceInterfaceStateEx
- Improved existing API WdfDeviceGetSystemPowerAction
- Added new API WdfPdoInitRemovePowerDependencyOnParent
- Introduction to the Directed Power Management Framework
KMDF 1.29 (Windows 10, version 1903)
Unchanged from version 1.25.
KMDF 1.27 (Windows 10, version 1809)
Unchanged from version 1.25.
KMDF 1.25 (Windows 10, version 1803)
KMDF 1.23 (Windows 10, version 1709)
- Companion functionality added for internal use only. For more info, see Wdfcompanion.h.
KMDF 1.21 (Windows 10, version 1703)
- 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.
- Added WDF registry values ObjectLeakDetectionLimit and ObjectsForLeakDetection for debugging excessive object creation. For more info, see Registry Values for Debugging WDF Drivers.
- The SleepStudy software tool reports the number of power references that a KMDF driver has that are preventing the system from going to sleep. For more info, see Modern standby SleepStudy.
KMDF 1.19 (Windows 10, version 1607)
- 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 1.15 (Windows 10, version 1507)
- The new WdfDeviceOpenDevicemapKey method allows a driver to access subkeys and values under HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP.
- 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.
KMDF 1.13 (Windows 8.1)
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 1.11 (Windows 8)
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:
- WdfDeviceConfigureWdmIrpDispatchCallback
- WdfDeviceInitSetReleaseHardwareOrderOnFailure
- WdfDeviceInitSetRemoveLockOptions
- WdfDeviceWdmDispatchIrp
- WdfDmaEnablerConfigureSystemProfile
- WdfDmaTransactionAllocateResources
- WdfDmaTransactionCancel
- WdfDmaTransactionFreeResources
- WdfDmaTransactionGetTransferInfo
- WdfDmaTransactionInitializeUsingOffset
- WdfDmaTransactionSetChannelConfigurationCallback
- WdfDmaTransactionSetDeviceAddressOffset
- WdfDmaTransactionSetImmediateExecution
- WdfDmaTransactionSetTransferCompleteCallback
- WdfDmaTransactionWdmGetTransferContext
- WdfInterruptQueueWorkItemForIsr
- WdfInterruptReportActive
- WdfInterruptReportInactive
- WdfInterruptTryToAcquireLock
- WdfIoQueueStopAndPurge
- WdfIoQueueStopAndPurgeSynchronously
- WdfIoTargetPurge
- WdfUsbTargetDeviceCreateIsochUrb
- WdfUsbTargetDeviceCreateUrb
- WdfUsbTargetDeviceCreateWithParameters
- WdfUsbTargetDeviceQueryUsbCapability
Added EvtDeviceUsageNotificationEx.
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.
Added InstallWdf, MultiComp, and SingleComp samples.
KMDF 1.9 (Windows 7)
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 1.7 (Windows Vista with Service Pack 1; Windows Server 2008)
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 1.5 (Windows Vista)
Added the DriverPoolTag member to WDF_DRIVER_CONFIG.
KMDF 1.1 (not released in a Windows version)
- The following methods:
KMDF 1.0 (not released in a Windows version)
Initial release.