Windows驱动电源状态
作者:互联网
Windows驱动电源状态,对于设备影响很大,在驱动中应该如何处理这些电源状态,需要先对电源状态有一些了解。
1. ACPI
ACPI(Advanced Configuration and Power Interface),即高级配置与电源接口。这种新的能源管理可以通过诸如软件控制"开关"系统,亦可以用Modem信号唤醒和关闭系统。
ACPI规范定义了一台兼容ACPI的计算机系统可以有以下七个状态(所谓的全局状态):
- G0(S0)正常工作状态:计算机的正常工作状态-操作系统和应用程序都在运行。
- G1 睡眠细分为从S1到S4这四种状态。系统从这几种状态被唤醒到G0运行(唤醒等待时间)所需的时间最短的是S1,较短的是S2和S3,不太短的是S4。
S1:最耗电的睡眠模式。处理器的所有寄存器被刷新,并且CPU停止执行指令。CPU和内存的电源一直维持着,一些设备如果没有被使用那么就会被停止供电。
S2:一个比S1更深的睡眠状态,不过已经不给CPU供电了;然而,通常这种模式并不被采用。
S3 :在BIOS中叫做挂到内存 (Suspend to RAM/STR),在Windows XP以后的Windows版本和一些Linux发行版中叫做待机(Standby), 在Windows Vista和Mac OS X则叫做睡眠(Sleep)。在这个状态下,主存储器(RAM)仍然有电源供给,它也是几乎唯一的有电源供给的原件。数据都在RAM,所以恢复快,但是断电丢数据。
S4: 在Windows中叫休眠,在Mac OS X中叫作安全睡眠,也称为挂到硬盘。所有主存储器的内容被储存在非挥发性存储器,例如硬盘,保护操作系统当前的状态,包括所有应用程序,打开的文档等.这意味着从S4恢复后,用户可以恢复到原本的工作状态,恢复慢,但是不丢数据。 - G2(S5)Soft Off--G2,S5,和Soft Off都是相同的叫法。G2和G3Mechanical Off几乎是相同的,但有些部件仍然带电,使计算机仍然可以被键盘、时钟、modem(电话唤醒)、LAN(网络唤醒)还有USB设备所唤醒。
2.系统电源状态
typedef enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified,
PowerSystemWorking,
PowerSystemSleeping1,
PowerSystemSleeping2,
PowerSystemSleeping3,
PowerSystemHibernate,
PowerSystemShutdown,
PowerSystemMaximum
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
- PowerSystemUnspecified:系统未指定的电源状态。
- PowerSystemWorking:系统最大功率,对应系统工作状态S0。
- PowerSystemSleeping1:小于PowerSystemWorking且大于PowerSystemSleeping2的系统休眠状态,对应系统电源状态S1。.
- PowerSystemSleeping2:小于“PowerSystemSleeping1”大于“PowerSystemSleeping3”的系统休眠状态,对应系统电源状态S2。
- PowerSystemSleeping3:系统休眠状态小于PowerSystemSleeping2大于PowerSystemHibernate,对应系统上电状态S3。
- PowerSystemHibernate:最低功率休眠状态,对应系统功率状态S4。
- PowerSystemShutdown:表示系统处于关闭状态,对应系统关闭状态S5。
- PowerSystemMaximum:此枚举类型表示实际电源状态的系统电源状态值的数目。这个值是一个设备的DEVICE_CAPABILITIES结构的DeviceState成员中的元素数量。其他系统功率状态值小于此值。
3.设备电源状态(Device Power State)
typedef enum _DEVICE_POWER_STATE {
PowerDeviceUnspecified,
PowerDeviceD0,
PowerDeviceD1,
PowerDeviceD2,
PowerDeviceD3,
PowerDeviceMaximum
} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
- PowerDeviceUnspecified:设备电源状态未指定。
- PowerDeviceD0:设备工作(D0)状态。这是设备的最高电源状态。
- PowerDeviceD1:设备D1休眠状态。它的定义根据设备的不同而有所不同。
- PowerDeviceD2:设备D2休眠状态。它的定义根据设备的不同而有所不同。
- PowerDeviceD3:设备D3休眠状态。设备状态/环境全部丢失,操作系统会重新初始化设备当重新给它加电的时候。这个状态下的设备恢复到D0相比之下需要最长的时间。
- PowerDeviceMaximum:仅供系统使用。
标签:状态,POWER,Windows,系统,电源,休眠状态,驱动,设备 来源: https://blog.51cto.com/u_14207158/2793466