本主题列出了 Kernel-Mode Driver Framework(KMDF)、Windows作系统的相应版本以及每个版本中所做的更改。
下表显示了 KMDF 库的发布历史记录。 可以使用右侧的“ 本文 ”边栏快速导航到特定版本。
| KMDF 版本 | 初次发布 | 包含在 | 使用此 KMDF 版本运行的驱动程序 |
|---|---|---|---|
| 1.33 | Windows 11 版本 21H2 WDK;适用于 Windows Server 2022 的 WDK | Windows 11 版本 24H2;Windows 11 版本 23H2;Windows 11 版本 22H2;Windows 11 版本 21H2;Windows Server 2022 | Windows 11 版本 21H2 及更高版本;Windows Server 2022 及更高版本 |
| 1.31 | Windows 10 版本 2004 WDK | Windows 10 版本 2004 | Windows 10 版本 2004 及更高版本 |
| 1.29 | 未在 WDK 中发布 | Windows 10 版本 1903 | Windows 10 版本 1903 和更高版本: |
| 1.27 | Windows 10 版本 1809 WDK | Windows 10 版本 1809 | Windows 10 版本 1809 及更高版本 |
| 1.25 | Windows 10 版本 1803 WDK | Windows 10 版本 1803 | Windows 10 版本 1803 及更高版本 |
| 1.23 | Windows 10 版本 1709 WDK | Windows 10 版本 1709 | Windows 10 版本 1709 及更高版本 |
| 1.21 | Windows 10 版本 1703 WDK | Windows 10 版本 1703 | Windows 10版本 1703 及更高版本 |
| 1.19 | Windows 10 版本 1607 WDK | Windows 10 版本 1607 | Windows 10 版本 1607、Windows Server 2016 及更高版本 |
| 1.17 | Windows 10 版本 1511 WDK | Windows 10 版本 1511 | Windows 10 版本 1511、Windows Server 2016 及更高版本 |
| 1.15 | Windows 10 WDK | Windows 10 版本 1507 | Windows 10 版本 1507、Windows Server 2016 及更高版本 |
| 1.13 | Windows 8.1 WDK | Windows 8.1 | Windows 8.1 及更高版本 |
| 1.11 | Windows 8 WDK | Windows 8操作系统 | Windows Vista 及更高版本 |
| 1.9 | Windows 7 WDK | Windows 7 | Windows XP 及更高版本 |
| 1.7 | Windows Server 2008 WDK | 具有 Service Pack 1 的 Windows Vista (SP1):Windows Server 2008 | Windows 2000 及更高版本 |
| 1.5 | Windows Vista WDK | Windows Vista | Windows 2000 及更高版本 |
| 1.1 | 仅下载 | 没有 | Windows 2000 及更高版本 |
| 1.0 | 仅下载 | 没有 | Windows XP 及更高版本 |
可以将 Windows 驱动程序工具包(WDK)与 Microsoft Visual Studio 2022 配合使用,以生成在 Windows 10 及更高版本上运行的驱动程序。
有关确定要使用的 WDF 版本的帮助,请参阅我应使用哪个框架版本?
有关回调和方法的完整列表,以及它们适用的框架和版本,请参阅 WDF 回调和方法摘要。
有关 Windows 10 中 KMDF 驱动程序的新功能的信息,请参阅 WDF 驱动程序的新增功能。
对于下面的每个 KMDF 版本部分,其发布的 Windows 版本在括号中列出。
最新版本 - KMDF 1.33 (Windows 11 版本 21H2;Windows Server 2022)
- 对于在WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE枚举中指定 SystemManagedIdleTimeout 或 SystemManagedIdleTimeoutWithHint 的设备, 当调用 WdfDeviceStopIdle 宏并将 WaitForD0 设置为 FALSE 时,如果设备仍处于 D0 并且空闲超时期限尚未过,WdfDeviceStopIdle 将返回STATUS_SUCCESS(在早期版本中,这导致返回值STATUS_PENDING)。
- WDF_POWER_FRAMEWORK_SETTINGS 结构有两个新成员(PoFxDeviceFlags 和 DirectedPoFxEnabled)。
KMDF 1.31 (Windows 10 版本 2004)
- 添加了新的 API WdfDeviceSetDeviceInterfaceStateEx
- 改进了现有 API WdfDeviceGetSystemPowerAction
- 添加了新的 API WdfPdoInitRemovePowerDependencyOnParent
- 定向电源管理框架 简介
KMDF 1.29 (Windows 10 版本 1903)
版本 1.25 保持不变。
KMDF 1.27 (Windows 10 版本 1809)
版本 1.25 保持不变。
KMDF 1.25 (Windows 10 版本 1803)
KMDF 1.23 (Windows 10 版本 1709)
- 为仅供内部使用而添加的配套功能。 有关详细信息,请参阅 Wdfcompanion.h。
KMDF 1.21 (Windows 10 版本 1703)
- WdfFileObjectGetInitiatorProcessId 以前仅在 UMDF 中可用,现已在 KMDF 中提供。
- WdfRequestGetRequestorProcessId 以前仅适用于 UMDF,现在在 KMDF 中可用。
- WdfObjectDereferenceActual: 文件 参数的类型已从 PCHAR 更改为 PCCH。
- WdfObjectReferenceActual: 文件 参数的类型已从 PCHAR 更改为 PCCH。
- 添加了 WDF 注册表值 ObjectLeakDetectionLimit 和 ObjectsForLeakDetection ,用于调试过多的对象创建。 有关详细信息,请参阅 用于调试 WDF 驱动程序的注册表值。
- SleepStudy 软件工具报告 KMDF 驱动程序阻止系统进入睡眠状态的电源引用数。 有关详细信息,请参阅 现代待机 SleepStudy。
KMDF 1.19 (Windows 10 版本 1607)
- 添加了 WdfDmaTransactionSetSingleTransferRequirement
- 在 WDF_DMA_ENABLER_CONFIG_FLAGS 中添加了 WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER 标志
- 为 WdfDmaTransactionInitialize 和 WdfDmaTransactionDmaCompleted 添加了STATUS_WDF_TOO_MANY_TRANSFERS返回值
- 向 !wdfkd.wdfdmatransaction 和 !wdfkd.wdfdmaenabler 添加了单个传输输出的输出消息
- 更多关于单一传输 DMA 的信息,请参阅 使用单传输 DMA。
KMDF 1.15 (Windows 10 版本 1507)
- 新的 WdfDeviceOpenDevicemapKey 方法允许驱动程序访问 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP下的子项和值。
- WDF 源代码可从 Windows 驱动程序框架公开提供。 WDF 的专用符号文件可通过Microsoft符号服务器获得。 另请参阅 使用 WDF 源 和 视频进行调试:使用 WDF 源代码调试驱动程序。
- 现提供飞行跟踪记录器(IFR)。 请注意,这与 框架的事件日志器分开。 有关详细信息,请参阅 用于日志记录的 Inflight 跟踪记录器 (IFR) 以及 在 KMDF 和 UMDF 驱动程序中使用 Inflight 跟踪记录器。
- 对 GPIO 支持的设备的中断提供支持。 有关详细信息,请参阅 创建中断对象。
KMDF 1.13 (Windows 8.1)
KMDF 版本 1.13 添加了以下功能:
- 添加了 CanWakeDevice 成员到 WDF_INTERRUPT_CONFIG 结构,以支持用于将设备从低功率 Dx 状态恢复到完全开启的 D0 状态的中断。 有关详细信息,请参阅 使用中断唤醒设备。
- 支持高分辨率计时器。 有关详细信息,请参阅 使用计时器。
- 支持在系统处于低功耗状态且计时器到期时不唤醒系统的计时器。 有关详细信息,请参阅 使用计时器。
- 访问统一设备属性模型中所述的以下 KMDF/UMDF 方法:
有关 UMDF 版本的信息,请参阅 UMDF 版本历史记录。
KMDF 1.11 (Windows 8)
版本 1.11 添加了以下功能:
对被动级中断的支持
单个设备中多个组件的功能电源状态
以下方法:
- 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
向 WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS 添加了 IdleTimeoutType 和 ExcludeD3Cold 成员。
向 WDF_INTERRUPT_CONFIG 添加了 ReportInactiveOnPowerDown 成员。
向WDF_IO_TARGET_STATE添加了 WdfIoTargetPurged 值。
向WDF_SPECIAL_FILE_TYPE添加了 WdfSpecialFileBoot 值。
在用于调试框架驱动程序的注册表值中添加了DbgWaitForSignalTimeoutInSec。
添加了 InstallWdf、 MultiComp 和 SingleComp 示例。
KMDF 1.9 (Windows 7)
版本 1.9 添加了以下功能:
保证 I/O 队列的持续前进
支持将子设备的 I/O 队列中的 I/O 请求重新排队 到父设备的 I/O 队列
能够为单个队列对象指定 队列级同步 。
以下方法:
向WDF_IO_QUEUE_CONFIG结构添加了 NumberOfPresentedRequests 成员,以便驱动程序可以限制框架从并行 I/O 队列传递到驱动程序的 I/O 请求数。
向WDF_FILEOBJECT_CLASS结构添加了 WdfFileObjectCanBeOptional 标志。
向WDF_TIMER_CONFIG结构添加了 TolerableDelay 成员。
添加了 WdfDefaultIdleInWorkingState 和 WdfDefaultWakeFromSleepState 注册表值。
KMDF 1.7 (具有 Service Pack 1 的 Windows Vista;Windows Server 2008)
可以在 IRQL<=DISPATCH_LEVEL 调用 WdfDeviceEnqueueRequest 方法。
如果指定的工作项已在工作项队列中,则可以调用 WdfWorkItemEnqueue 方法。
添加了 EvtDeviceArmWakeFromSxWithReason 事件回调函数。
向WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS结构添加了 ArmForWakeIfChildrenAreArmedForWake 和 IndicateChildWakeOnParentWake 成员。
KMDF 1.5 (Windows Vista)
向WDF_DRIVER_CONFIG添加了 DriverPoolTag 成员。
KMDF 1.1 (未在 Windows 版本中发布)
KMDF 1.0 (未在 Windows 版本中发布)
初始版本。