系统电源操作
当电源管理器发送 IRP 来设置或查询系统电源状态时,它会指定系统电源状态以及提供有关电源状态更改信息的附加参数。 此参数在 Irp-Parameters.Power.ShutdownType> 中传递,是POWER_ACTION类型的枚举器。 枚举器对系统电源状态请求进行特征化,如下表所示。
POWER_ACTION 枚举器 | 请求的系统电源状态 |
---|---|
PowerActionNone |
S0 或无系统电源 IRP 处于活动状态 |
PowerActionSleep |
S1、S2 或 S3 |
PowerActionHibernate |
S4 |
PowerActionShutdown (Microsoft Windows 2000 及更高版本系统仅) |
S5 |
PowerActionShutdownReset |
S5 |
PowerActionShutdownOff |
S5 |
当驱动程序收到 S5 的系统查询或设置电源 IRP 时,它可以检查 ShutdownType 获取有关所请求关闭的详细信息。 当计算机重置时,驱动程序可以使用此信息来优化其关闭顺序,而不是无限期地关闭电源。 大多数设备的驱动程序在系统重置时保持电源。 但是,对于某些设备(例如 (DMA) 执行直接内存访问的视频流设备),驱动程序可能会选择在系统重置时关闭其设备电源,从而停止任何正在进行的 I/O。
当设备电源策略所有者将 设备 电源 IRP 发送到其设备堆栈以响应系统电源 IRP 时,驱动程序可以使用 ShutdownType 参数获取有关当前 系统 电源 IRP 的信息。 在这种情况下, ShutdownType 的值指示当前请求的系统电源状态;如果系统请求未完成,则为 PowerActionNone 。 但是,如果设备 IRP 请求状态 D0,驱动程序不应依赖于此信息。
在 Windows 98/Me 中,当 IRP 请求设备电源状态时,此成员始终包含 PowerActionNone 。