确定设备是否可以唤醒系统
某些设备(如键盘、调制解调器和网卡)可以在处于设备睡眠状态时响应外部信号。 作为其电源管理技术的一部分,操作系统为此类设备提供了一种唤醒睡眠系统的方法,从而可以还原其以前的上下文。 软件唤醒机制允许系统从除 S5 (PowerSystemShutdown) 以外的任何状态唤醒,具体取决于系统和设备硬件以及 BIOS 中的支持。 必须始终重新启动处于 S5 状态的系统。
尽管操作系统旨在从任何中间睡眠状态唤醒,但确切的唤醒功能因计算机和设备而异。 并非所有计算机都支持所有系统睡眠状态;因此,在某些计算机上,从某些状态唤醒的能力毫无意义。
同样,大多数设备既不支持所有设备电源状态 (D0 到 D3) 也不支持从它们支持的所有设备电源状态唤醒。
设备可以进入的睡眠状态以及它支持唤醒的状态由总线驱动程序在枚举中描述,并存储在 DEVICE_CAPABILITIES 结构中。 下表列出了此结构中与等待/唤醒支持相关的成员。
成员 | 说明 |
---|---|
如此 如果设备支持状态 PowerDeviceD1。 |
|
如此 如果设备支持状态 PowerDeviceD2。 |
|
如此 如果设备可以从 PowerDeviceD0 唤醒。 |
|
如此 如果设备可以从 PowerDeviceD1 唤醒。 |
|
如此 如果设备可以从 PowerDeviceD2 唤醒。 |
|
如此 如果设备可以从 PowerDeviceD3 唤醒。 |
|
DeviceState [PowerSystemMaximum] |
指定此设备可以为每个系统电源状态支持的最高设备电源状态,从 PowerSystemUnspecified 到 PowerSystemShutdown。 |
指定最低系统电源状态 (S0 到 S4) ,系统可从中唤醒。 |
|
指定最低设备电源状态 (D0 到 D3) ,设备可从中唤醒。 |
DeviceWake 条目列出了设备可从中响应唤醒信号的最低设备电源状态。 PowerDeviceUnspecified 值指示设备无法唤醒系统。 SystemWake 条目列出了系统可从中唤醒的最低系统电源状态。 这些值基于父开发节点的功能,驱动程序不应更改它们。 有关详细信息,请参阅 报告设备电源功能。
通常,如果以下条件成立,设备可以唤醒系统:
设备处于等于或高于 DeviceWake 值的电源状态。
系统处于等于或高于 SystemWake 值的电源状态。