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:仅供系统使用。

标签: Windows, 驱动, 系统, 设备, 状态, 电源, POWER, 休眠状态

相关文章推荐

添加新评论,含*的栏目为必填