系统电源作

当电源管理器发送 IRP 来设置或查询系统电源状态时,它会指定系统电源状态。 它还指定另一个参数,该参数提供有关电源状态更改的信息。 此参数在 Irp-Parameters.Power.ShutdownType> 中传递,是POWER_ACTION类型的枚举器。 枚举器对系统电源状态请求进行特征化,如下表所示。

POWER_ACTION枚举器 请求的系统电源状态
PowerActionNone S0 或无系统电源 IRP 处于活动状态
PowerActionSleep S1、S2 或 S3
PowerActionHibernate S4
PowerActionShutdown (Windows 2000 及更高版本) S5
PowerActionShutdownReset S5
PowerActionShutdownOff S5

当驱动程序收到系统查询或 S5 的集电源 IRP 时,它可以检查 ShutdownType 以获取有关所请求关闭的详细信息。 当计算机重置时,驱动程序可以使用此信息来优化其关闭顺序,而不是无限期关闭电源。 系统重置时,大多数设备的驱动程序会保留电源。 但是,对于某些设备(例如执行直接内存访问(DMA)的视频流式处理设备,驱动程序可能会在系统重置时选择关闭其设备,从而停止任何正在进行的 I/O。

当设备电源策略所有者向设备堆栈发送 设备 电源 IRP 以响应系统电源 IRP 时,驱动程序可以使用 ShutdownType 参数获取有关当前 系统 电源 IRP 的信息。 在这种情况下, ShutdownType 的值指示当前请求的系统电源状态,或者如果系统请求未完成,则为 PowerActionNone 。 如果设备 IRP 请求状态 D0,驱动程序不应依赖此信息。

有关详细信息,请参阅 IRP_MN_SET_POWER的系统电源转换上下文