UMDF 版本历史记录
本主题列出了用户模式驱动程序框架 (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 (Creators Update, 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 月更新,Threshold 2) | Windows 10 版本 1511,Windows Server 2016 和更高版本 |
2.15 | windows 10 WDK | Windows 10 版本 1507 (Threshold 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 的设备,当调用将 WaitForD0 设置为 FALSE 的 WdfDeviceStopIdle 宏,如果设备仍处于 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)。 请注意,这与 框架事件日志器是分开的。 有关详细信息,请参阅 用于记录跟踪的飞行跟踪记录器 (IFR) 和 在 KMDF 和 UMDF 驱动程序中使用飞行跟踪记录器。
- 支持的中断适用于 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 的驱动程序中支持空闲关闭电源的支持。 当空闲超时期限到期时,框架现在可以将设备置于 D3cold 电源状态。 当系统返回到工作状态 (S0) 时,框架还可能导致设备返回到工作状态 (D0)。
以下示例是 UMDF 1.11 中的新增功能:NetNfpProvider、WudfVhidmini。
UMDF 1.9 (Windows 7)
版本 1.9 添加了以下驱动程序提供的回调接口:
版本 1.9 添加了以下框架提供的接口:
这些接口将以下功能添加到基于 UMDF 的驱动程序: