本主题列出了 User-Mode Driver Framework(UMDF)、Windows作系统的相应版本以及每个版本中所做的更改。
下表显示了 UMDF 库的发布历史记录。 可以使用右侧的“ 本文 ”边栏快速导航到特定版本。
| UMDF 版本 | 初次发布 | 包含在 | 使用此 UMDF 版本的驱动程序进行运行 |
|---|---|---|---|
| 2.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 及更高版本 |
| 2.31 | Windows 10 版本 2004 WDK | Windows 10 版本 2004(2020 年 5 月更新,Vibranium) | Windows 10 版本 2004 及更高版本 |
| 2.29 | 未在 WDK 中发布 | Windows 10 版本 1903(2019 年 3 月更新,19H1) | Windows 10 版本 1903 和更高版本: |
| 2.27 | Windows 10 版本 1809 WDK | Windows 10 版本 1809(2018 年 10 月更新,Redstone 5) | Windows 10 版本 1809 及更高版本 |
| 2.25 | Windows 10 版本 1803 WDK | Windows 10 版本 1803(2018 年 4 月更新,Redstone 4) | Windows 10 版本 1803 及更高版本 |
| 2.23 | Windows 10 版本 1709 WDK | Windows 10 版本 1709 (Fall Creators Update, Redstone 3) | Windows 10 版本 1709 及更高版本 |
| 2.21 | Windows 10 版本 1703 WDK | Windows 10 版本 1703(创意者更新,Redstone 2) | Windows 10版本 1703 及更高版本 |
| 2.19 | Windows 10 版本 1607 WDK | Windows 10 版本 1607 (周年更新,Redstone 1) | Windows 10 版本 1607、Windows Server 2016 及更高版本 |
| 2.17 | Windows 10 版本 1511 WDK | Windows 10 版本 1511(11 月更新、阈值 2) | Windows 10 版本 1511、Windows Server 2016 及更高版本 |
| 2.15 | Windows 10 WDK | Windows 10 版本 1507 (阈值 1) | Windows 10 版本 1507、Windows Server 2016 及更高版本 |
| 2.0 | Windows 驱动程序工具包 (WDK) 8.1 | Windows 8.1 | Windows 8.1 及更高版本 |
| 1.11 | Windows 驱动程序工具包 (WDK) 8 | Windows 8操作系统 | Windows Vista 及更高版本 |
| 1.9 | Windows 7 WDK | Windows 7 | Windows XP 及更高版本 |
| 1.7 | Windows Server 2008 WDK | Windows Vista Service Pack 1 (SP1),Windows Server 2008 | Windows XP 及更高版本 |
| 1.5 | Windows Vista WDK | Windows Vista | Windows XP 及更高版本 |
可以将 Windows 驱动程序工具包(WDK)与 Microsoft Visual Studio 2022 配合使用,以生成在 Windows 10 及更高版本上运行的驱动程序。
有关确定要使用的 WDF 版本的帮助,请参阅我应使用哪个框架版本?
有关 Windows 10 中 UMDF 驱动程序的新功能的信息,请参阅 WDF 驱动程序的新增功能。
对于下面的每个 UMDF 版本部分,其发布的 Windows 版本在括号中列出。
最新版本 - UMDF 2.33 (Windows 11 版本 21H2;Windows Server 2022)
- 对于在WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE枚举中指定 SystemManagedIdleTimeout 或 SystemManagedIdleTimeoutWithHint 的设备, 当调用 WdfDeviceStopIdle 宏并将 WaitForD0 设置为 FALSE 时,如果设备仍处于 D0 并且空闲超时期限尚未过,WdfDeviceStopIdle 将返回STATUS_SUCCESS(在早期版本中,这导致返回值STATUS_PENDING)。
- WdfDeviceWdmAssignPowerFrameworkSettings 函数现在支持 UMDF。
- WDF_POWER_FRAMEWORK_SETTINGS 结构有两个新成员(PoFxDeviceFlags 和 DirectedPoFxEnabled),现在可以与 UMDF 一起使用。 对于 UMDF,仅使用 Size、 PoFxDeviceFlags 和 DirectedPoFxEnabled 成员。 其他字段将被忽略,并且必须设置为零。 当 UMDF 驱动程序调用 WDF_POWER_FRAMEWORK_SETTINGS_INIT 函数时,框架会自动执行此作。
UMDF 2.31 (Windows 10 版本 2004)
- 添加了新的 API WdfDeviceSetDeviceInterfaceStateEx
- 改进了现有 API WdfDeviceGetSystemPowerAction
- 添加了每个驱动程序 HostProcessDbgBreakOnDriverLoad 注册表值。 有关详细信息,请参阅 用于调试 WDF 驱动程序的注册表值。
- 定向电源管理框架 简介
UMDF 2.29 (Windows 10 版本 1903)
与版本 2.27 保持不变。
UMDF 2.27 (Windows 10 版本 1809)
UMDF 2.25 (Windows 10 版本 1803)
UMDF 2.23 (Windows 10 版本 1709)
- 为仅供内部使用而添加的配套功能。 有关新的 DDI,请参阅 WDF 回调和方法摘要。
UMDF 2.21 (Windows 10 版本 1703)
- WdfObjectDereferenceActual: 文件 参数的类型已从 PCHAR 更改为 PCCH。
- WdfObjectReferenceActual: 文件 参数的类型已从 PCHAR 更改为 PCCH。
- 添加了 WDF 注册表值 ObjectLeakDetectionLimit 和 ObjectsForLeakDetection ,用于调试过多的对象创建。 有关详细信息,请参阅 用于调试 WDF 驱动程序的注册表值。
UMDF 2.19 (Windows 10 版本 1607)
UMDF 版本 2.19 没有更改或添加。
UMDF 2.17 (Windows 10 版本 1511)
此版本添加了对以下现有接口的 UMDF 支持:
- WdfDeviceConfigureWdmIrpDispatchCallback
- EvtDeviceWdmIrpDispatch
- WdfDeviceWdmDispatchIrp
- WdfDeviceWdmDispatchIrpToIoQueue
有关详细信息,请参阅 将 IRP 调度到 I/O 队列。
UMDF 2.15 (Windows 10 版本 1507)
- 新的 WdfDeviceOpenDevicemapKey 方法允许驱动程序访问 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP下的子项和值。
- UMDF 驱动程序可以调用 WdfIoTargetWdmGetTargetFileHandle ,以获取其堆栈中下一低内核模式驱动程序的文件句柄。 驱动程序可以将数据写入该句柄,从而绕过框架的抽象,以便将 I/O 发送到本地 I/O 目标。
- UMDF 驱动程序可以请求基础总线驱动程序重新枚举它。 请参阅 WdfDeviceSetFailed。
- 对于具有连接资源的设备,通常不再总是需要设置 UmdfDirectHardwareAccess 指令。 请参阅 在 INF 文件中指定 WDF 指令。
- WDF 源代码可从 Windows 驱动程序框架公开提供。 WDF 的专用符号文件可通过Microsoft符号服务器获得。 另请参阅 使用 WDF 源 和 视频进行调试:使用 WDF 源代码调试驱动程序。
- 现提供飞行跟踪记录器(IFR)。 请注意,这与 框架的事件日志器分开。 有关详细信息,请参阅 用于日志记录的 Inflight 跟踪记录器 (IFR) 以及 在 KMDF 和 UMDF 驱动程序中使用 Inflight 跟踪记录器。
- 对 GPIO 支持的设备的中断提供支持。 有关详细信息,请参阅 创建中断对象。
UMDF 2.0 (Windows 8.1)
除了 UMDF 入门中所述的共享功能外,UMDF 版本 2.0 还添加了:
支持在系统处于低功耗状态且计时器到期时不唤醒系统的计时器。 有关详细信息,请参阅 使用计时器。
添加了 CanWakeDevice 成员到 WDF_INTERRUPT_CONFIG 结构,以支持用于将设备从低功率 Dx 状态恢复到完全开启的 D0 状态的中断。 有关详细信息,请参阅 使用中断唤醒设备。
UMDF 驱动程序的单组件单状态(F0)电源管理。 有关详细信息,请参阅 WdfDeviceAssignS0IdleSettings。
Wdfkd.dll 中的多个调试器扩展命令现在也可用于 UMDF 2.0 驱动程序。 扩展库还包含以下专为调试 UMDF 2.0 驱动程序而设计的新扩展命令:
框架的事件日志器或飞行记录器(IFR)已更新为适用于 UMDF 2.0 驱动程序。
其他 WDF 调试器扩展已更新为使用支持 UMDF 2.0 的驱动程序。 有关扩展命令的完整列表,包括有关哪些扩展命令适用于哪个框架的信息,请参阅 WDF 驱动程序的调试器扩展。
向 WDF_IO_TARGET_OPEN_TYPE 添加了 WdfIoTargetOpenLocalTargetByFile,以允许 UMDF 驱动程序将驱动程序创建的请求发送到需要关联文件对象的较低目标。 有关详细信息,请参阅 WDF_IO_TARGET_OPEN_TYPE的备注。
以下仅限 UMDF 的例程:
- EvtRequestImpersonate
- WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE(按文件打开)
- WdfDeviceAllocAndQueryInterfaceProperty
- WdfDeviceAssignInterfaceProperty
- WdfDeviceGetDeviceStackIoType
- WdfDeviceGetHardwareRegisterMappedAddress
- WdfDeviceMapIoSpace
- WdfDevicePostEvent
- WdfDeviceQueryInterfaceProperty
- WdfDeviceUnmapIoSpace
- WdfFileObjectGetInitiatorProcessId (已添加到 KMDF 1.21)
- WdfFileObjectGetRelatedFileObject
- WdfRequestGetEffectiveIoType
- WdfRequestGetRequestorProcessId (已添加到 KMDF 1.21)
- WdfRequestGetUserModeInitiatedIo
- WdfRequestImpersonate
- WdfRequestIsFromUserModeDriver
- WdfRequestRetrieveActivityId
- WdfRequestSetActivityId
- WdfRequestSetUserModeDriverInitiatedIo
访问统一设备属性模型中所述的以下 KMDF/UMDF 方法:
支持 WdfUsbTargetDeviceSelectConfigType 中的以下 USB 配置类型:
- WdfUsbTargetDeviceSelectConfigTypeSingleInterface
- WdfUsbTargetDeviceSelectConfigTypeMultiInterface
- WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs
支持在 WdfUsbTargetDeviceQueryUsbCapability 中查询以下功能类型:
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
添加了 WDF 寄存器/端口访问函数
UMDF 1.11 (Windows 8)
版本 1.11 添加了以下驱动程序提供的回调接口和事件回调函数:
版本 1.11 添加了以下框架提供的接口:
版本 1.11 向基于 UMDF 的驱动程序添加了以下功能:
添加了 UmdfHostProcessSharing、UmdfDirectHardwareAccess、UmdfRegisterAccessMode、UmdfFileObjectPolicy 和 UmdfFsContextUsePolicy 指令,如在 INF 文件中指定 WDF 指令中所述
统一属性存储支持,如在基于 UMDF 的驱动程序中使用注册表中所述
IoGetDeviceObjectPointer 已集成,可与 UMDF 配合使用。 在早期版本中,此例程在对设备的句柄进行引用后关闭设备对象的句柄。 此行为与 UMDF 的预期不兼容,即在完成所有 I/O 之前,设备对象上的清理请求不会发生。
增强了对 在基于 UMDF 的驱动程序中支持空闲 Power-Down 的支持。 当空闲超时时间到期时,框架现在可以将设备置于D3cold电源状态。 当系统返回到其工作状态(S0)时,框架还可能导致设备返回到其工作状态(D0)。
以下示例是 UMDF 1.11 中的新增功能:WudfVhidmini、NetNfpProvider。
UMDF 1.9 (Windows 7)
版本 1.9 添加了以下驱动程序提供的回调接口:
版本 1.9 添加了以下框架提供的接口:
这些接口将以下功能添加到基于 UMDF 的驱动程序: