设备 (UMDF 1) 进入Low-Power状态

警告

UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。

存档的 UMDF 1 示例可在 Windows 11 版本 22H2 - 2022 年 5 月驱动程序示例更新中找到。

有关详细信息,请参阅使用 UMDF 入门

如果发生以下情况之一,设备会将其工作 (D0) 状态并进入低功耗状态:

  • 设备处于空闲状态 (,即不会) 访问,并且能够在系统保持工作 (S0) 状态时进入低功耗空闲状态。

  • 系统的电源状态已从工作 (S0) 状态更改为低功率状态。 (驱动程序可以调用 IWDFDevice2::GetSystemPowerAction 来确定系统电源状态发生更改的原因。)

对于支持设备的每个基于 UMDF 的函数和筛选器驱动程序,框架依次执行以下操作,一次一个驱动程序,从驱动程序堆栈中最高的驱动程序开始:

  1. 如果驱动程序使用自托管 I/O,框架将调用驱动程序的 IPnpCallbackSelfManagedIo::OnSelfManagedIoSuspend 回调函数。

  2. 框架停止设备的所有电源管理 I/O 队列,并调用其 IPnpCallbackSelfManagedIo::OnSelfManagedIoStop 回调函数 ((如果它们) 存在)。

  3. 如果驱动程序是设备的电源策略所有者,框架将调用其 IPowerPolicyCallbackWakeFromS0::OnArmWakeFromS0IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx 回调函数。

  4. 框架调用驱动程序的 IPnpCallback::OnD0Exit 回调函数 ((如果该函数) 存在)。

若要查看显示这些步骤的关系图,请参阅 用户拔出设备中的有序删除图。