Windows 内核模式电源管理器

Windows 使用电源管理技术来降低电脑(尤其是电池供电的笔记本电脑)的功耗。 例如,Windows 计算机可以处于睡眠或休眠状态。 计算机设备的复杂电源管理系统已经发展,因此,当计算机开始关闭或降低功耗时,连接的设备也可以以适当的方式关闭,以便不会丢失任何数据。 但这些设备需要一个警告,指示电源状态正在更改,它们可能还需要成为通信循环的一部分,该循环告诉控制设备等待,直到它们可以正确关闭。

Windows 内核模式电源管理器管理所有支持电源状态更改的电源状态的有序更改。 这通常通过控制其他设备的复杂设备堆栈来完成。 每个控制设备称为 节点 ,并且必须有一个驱动程序,该驱动程序可以通过设备堆栈上下处理电源状态更改的通信。

如果要编写可能受电源状态更改影响的驱动程序,则必须能够在驱动程序代码中处理以下类型的信息:

  • 系统活动级别。

  • 系统电池电量。

  • 当前要关闭、睡眠或休眠的请求。

  • 用户操作,例如按下电源按钮。

  • 控制面板设置,例如以 10% 的电池电量自动关闭。

电源管理器使用 IRP 处理这些请求。 有关 IRP 的详细信息,请参阅 处理 IRP

电源管理器与策略管理结合使用来处理电源管理和协调电源事件,然后生成电源管理 IRP。 电源管理器收集更改电源状态的请求,确定设备必须更改其电源状态的顺序,然后发送相应的 IRP 以告知相应的驱动程序 (这些更改反过来可能会告知子设备进行更改以及) 。 策略管理器监视系统中的活动,并将用户状态、应用程序状态和设备驱动程序状态集成到电源策略中。

有关电源管理的更多详细信息,请参阅 Windows 驱动程序的电源管理

电源管理器被视为 I/O 管理器的子组件。 有关详细信息,请参阅 Windows I/O 管理器

为电源管理器提供直接接口的例程通常以“Po”为前缀;例如 ,PoSetPowerState。 有关电源管理器例程的列表,请参阅 Power Manager 例程

Windows 驱动程序框架 (WDF) 提供了一组库,使电源管理更加容易。 有关 WDF 的详细信息,请参阅 内核模式驱动程序框架概述