系统电源状态
对用户,计算机系统似乎处于打开或关闭状态。 没有其他可检测的状态。 但是,系统支持多个电源状态,这些状态对应于高级配置和电源接口 (ACPI) 规范中定义的电源状态。 这些状态也有变化,例如混合睡眠和快速启动。 本文介绍这些状态,并介绍它们之间的关系。
注意
使用系统服务创建驱动程序或应用程序的系统集成商和开发人员应特别小心驱动程序质量问题,例如内存泄漏。 虽然驱动程序质量一直很重要,但内核重启之间的启动时间可能比以前版本的 OS 长得多,因为内核、驱动程序和服务在用户启动的睡眠和关闭时会保留和还原,而不是重新启动。
下表列出了从最高到最低功率消耗的 ACPI 电源状态。
电源状态 | ACPI 状态 | 说明 |
---|---|---|
正在运行 | S0 | 系统完全可用。 未使用的硬件组件可以通过进入较低的电源状态来节省电量。 |
睡眠 (新式待机) | S0 低功耗空闲 | 某些 SoC 系统支持称为 新式待机的低功耗空闲状态。 在此状态下,系统可以非常快速地从低功耗状态切换到大功率状态,以响应硬件和网络事件。 支持新式待机的系统不使用 S1-S3。 |
睡眠状态 |
S1 S2 S3 |
系统似乎已关闭。 状态 S1-S3 的耗电量小于 S0 且大于 S4。
S3 比 S2 消耗的功率更少, S2 消耗的功率低于 S1。 系统通常支持这三种状态之一,而不是全部三种状态。 在状态 S1-S3 中,将保持刷新易失性内存以维护系统状态。 某些组件保持供电状态,因此计算机可以从键盘、LAN 或 USB 设备的输入唤醒。 混合睡眠(在桌面上使用)是系统使用 S1-S3 休眠文件的位置。 休眠文件会保存系统状态,以防系统在睡眠状态下断电。 注意: 支持新式待机的 SoC 系统不使用 S1-S3。 |
休眠 | S4 | 系统似乎已关闭。 将功耗降低到最低水平。 系统将易失性内存的内容保存到休眠文件中,以保留系统状态。 某些组件保持供电状态,因此计算机可以从键盘、LAN 或 USB 设备的输入唤醒。 如果工作上下文存储在非易失媒体上,则可以还原它。 快速启动 是在创建休眠文件之前注销用户的位置。 这允许使用较小的休眠文件,更适合存储功能较少的系统。 |
软关闭 | S5 | 系统似乎已关闭。 此状态由完全关闭和启动周期组成。 |
机械关闭 | G3 | 系统完全关闭,不消耗任何电源。 仅在完全重启后,系统才会返回到工作状态。 |
SYSTEM_POWER_STATE枚举定义用于指定系统电源状态的值。
工作状态:S0
在工作状态期间,系统处于唤醒状态并正在运行。 简单来说,设备处于打开。 无论屏幕是打开还是关闭,设备都处于完全运行状态。 为了节省能源,尤其是在电池供电的设备上,建议在不使用硬件组件时关闭它们。
重要
无论硬件组件处于何种状态,只要不使用硬件组件就会关闭电源。 低功耗是移动设备使用者的重要考虑因素。
睡眠状态:新式待机
在工作状态的 S0 低功耗空闲模式(也称为 新式待机)中,系统仍部分运行。 在新式待机期间,只要有合适的网络可用,系统就可以保持最新状态,并在需要实时操作(例如 OS 维护)时唤醒。 新式待机唤醒速度明显快于 S1-S3。 有关详细信息,请参阅 新式待机。
注意
新式待机仅适用于某些 SoC 系统。 如果受支持,则系统不支持 S1-S3。
注意
不要在支持新式 Standaby 的系统上启用 S3 lan 唤醒 (WoL) 。 新式待机原生支持使用魔术数据包唤醒计算机。 无需启用旧版 S3 WoL,可能会导致网络上出现 DHCP 和/或 DNS 数据包风暴。
睡眠状态:S1-S3
系统根据许多条件进入睡眠,包括用户或应用程序活动以及用户在“设置”应用的“电源&睡眠”页上设置的首选项。 默认情况下,系统使用所有已启用唤醒设备支持的最低功率睡眠状态。 有关系统如何确定何时进入睡眠的详细信息,请参阅 系统睡眠条件。
在系统进入睡眠之前,它会确定适当的睡眠状态,通知应用程序和驱动程序挂起的转换,然后将系统转换为睡眠状态。 在发生关键转换的情况下,例如达到关键电池阈值时,系统不会通知应用程序和驱动程序。 应用程序需要为此做好准备,并在系统返回到工作状态时采取适当的操作。
在 S1-S3 状态下,将保持刷新易失性内存以保持系统状态。 某些组件保持供电状态,因此计算机可以从键盘、LAN 或 USB 设备的输入唤醒。
系统还会从睡眠状态唤醒,以响应用户活动或应用程序定义的唤醒事件。 有关详细信息,请参阅 系统唤醒事件。 系统唤醒所需的时间取决于其从中唤醒的睡眠状态。 由于硬件可能必须执行的额外工作,系统从低功率状态 (S3) 唤醒的时间比从更高功率 (S1) 唤醒的时间更多。 例如,稳定电源或重新初始化处理器。
注意
调用 SetThreadExecutionState 时, ES_AWAYMODE_REQUIRED
仅当需要系统执行后台任务的媒体应用程序(例如,在系统似乎处于睡眠状态时将电视内容或流媒体录制到其他设备)时才应使用该值。 不需要关键后台处理或在便携式计算机上运行的应用程序不应启用离开模式,因为它会阻止系统通过进入真正的睡眠来节省电量。
混合睡眠:S1-S3 + 休眠文件
混合睡眠 是睡眠和休眠状态的组合的特殊状态。 这是当系统将休眠文件与 S1-S3 配合使用时。 混合睡眠仅在某些系统上可用。 启用后,系统会写入休眠文件,但进入更高功率的睡眠状态。 如果系统处于睡眠状态时断电,系统会从休眠状态中唤醒,这需要更长的时间,但会还原用户的系统状态。
休眠状态:S4
Windows 使用休眠来提供快速启动体验。 如果可用,它还可用于移动设备,通过提供在关闭系统之前保存所有用户状态的机制来延长系统的可用电池使用时间。 在休眠转换中,内存的所有内容都会写入主系统驱动器上的文件 ,即休眠文件。 这会保留操作系统、应用程序和设备的状态。 如果合并的内存占用占用了所有物理内存,休眠文件必须足够大,以确保有空间来保存物理内存的所有内容。 由于数据写入到非易失性存储,DRAM 不需要保持自我刷新,并且可以关闭电源,这意味着休眠的功耗非常低,几乎与关机相同。
在 S5) (完全关闭和启动期间,整个用户会话在下次启动时会关闭并重启。 相反,在休眠 (S4) 期间,用户会话将关闭并保存用户状态。
快速启动:减少了休眠文件
快速启动 是一种使用休眠文件来加速后续启动的关闭类型。 在这种类型的关闭期间,用户会先注销,然后再创建休眠文件。 快速启动允许使用更小的休眠文件,更适合存储功能较少的系统。 有关详细信息,请参阅 休眠文件类型。
使用快速启动时,系统在用户看来就像发生了完全关闭 (S5) ,即使系统实际上已通过 S4 也是如此。 这包括系统如何响应设备唤醒警报。
快速启动会注销用户会话,但内核 (会话 0) 的内容会写入硬盘。 这样可以加快启动速度。
若要以编程方式启动快速启动样式的关闭,请使用 标志调用 InitiateShutdown 函数 SHUTDOWN_HYBRID
,或使用 标志调用 ExitWindowsEx 函数 EWX_HYBRID_SHUTDOWN
。
注意
在 Windows 中,快速启动是请求系统关闭时的默认转换。 在请求系统重启或应用程序调用关闭 API 时, (S5) 发生完全关闭。
进入休眠状态
发出休眠请求时,当系统进入休眠状态时,将执行以下步骤:
- 应用和服务收到通知
- 通知驱动程序
- 用户和系统状态以压缩格式保存到磁盘
- 固件收到通知
注意
系统上的所有核心都用于压缩内存中的数据并将其写入磁盘。
若要以编程方式启动休眠转换,请调用 SetSuspendState 函数。
从休眠状态恢复
当系统从休眠状态恢复时。
当系统开机时,当系统从休眠状态恢复时,将执行以下步骤:
- 系统 POST
- 从休眠文件解压缩和还原系统内存
- 设备初始化
- 驱动程序将还原到休眠之前的状态
- 服务还原到休眠前的状态
- 系统可供登录
从休眠状态恢复以类似于 S5 关闭的系统 POST 开始。 OS 启动管理器通过检测有效的休眠文件来确定需要从休眠恢复。 然后,它会指示系统恢复,还原内存和所有体系结构寄存器的内容。 在从休眠状态恢复的情况下,系统内存的内容将从磁盘中读回、解压缩和还原,这使系统处于休眠时处于的确切状态。 恢复内存后,设备将重新启动,计算机将返回到运行状态,并准备好登录。
注意
在从休眠状态恢复期间,驱动程序和服务会收到通知,但不会重启。 它们只会恢复到休眠前的状态。
休眠文件类型
休眠文件用于混合睡眠、快速启动和 标准休眠。 有两种类型,按大小区分,一个是完整的和减小大小的休眠文件。 只有快速启动才能使用缩减的休眠文件。
休眠文件类型 | 默认大小 | 支持。。。 |
---|---|---|
完整 | 40% 的物理内存 | 休眠,混合睡眠,快速启动 |
减少 | 20% 的物理内存 | 快速启动 |
若要验证或更改使用的休眠文件类型,请运行 powercfg.exe 实用工具。 以下示例演示了操作方法。 有关详细信息,请运行 powercfg /? hibernate
。
示例 | 说明 |
---|---|
powercfg /a |
验证休眠文件类型。 使用完整休眠文件时,结果会指出休眠是一个可用选项。 使用缩减的休眠文件时,结果显示不支持休眠。 如果系统根本没有休眠文件,则结果显示尚未启用休眠。 |
powercfg /h /type full |
将休眠文件类型更改为 full。 不建议在存储小于 32GB 的系统上执行此操作。 |
powercfg /h /type reduced |
将休眠文件类型更改为缩减。 如果命令返回“参数不正确”,请参阅以下示例。 |
powercfg /h /size 0 powercfg /h /type reduced |
重试将休眠文件类型更改为缩减。 如果休眠文件设置为大于 40% 的自定义大小,则必须首先将文件大小设置为零。 然后重试缩减的配置。 |
软关闭状态:S5
软关闭状态是系统在没有休眠文件的情况下完全关闭。 软关闭也称为 完全关闭。 在完全关闭和启动期间,整个用户会话会关闭并在下次启动时重启。 因此,从此状态启动/启动所需的时间比 S1-S4 长得多。 在请求系统重启或应用程序调用关闭 API 时, (S5) 发生完全关闭。
机械关闭状态:G3
在此状态下,系统完全关闭,不消耗任何电量。 只有在完全重启后,系统才返回到工作状态。
LAN 唤醒行为
当网络适配器检测到 WOL 事件时,LAN 唤醒 (WOL) 功能将计算机从低功耗状态唤醒, (通常是一个特殊构造的以太网数据包) 。
支持 S3 睡眠或 S4 休眠的 WOL。 快速启动或 S5 软关闭状态不支持它。 在这些状态下,NIC 无法进行唤醒,因为用户不希望其系统自行唤醒。
注意
从 S5 软关闭状态开始,不支持 WOL。 但是,某些系统上的 BIOS 可能支持武装 NIC 进行唤醒,即使 Windows 不参与此过程。