新式待机固件通知

根据概述的新式待机系统状态,Microsoft 提供通知来指示系统何时进入和退出这些状态。 请务必注意,这些是固件通知,而不是 OS 级别的通知。

这些通知是一组设备特定方法 (_DSM) 函数,操作系统可以使用这些函数与系统固件交互,以围绕关键系统状态转换进行电源和功能优化。 在设计具有新式待机功能的系统时,工程师必须考虑应如何以及在什么情况下实现某些系统行为。 这些决策中的一个重要因素是系统的电源状态 - 设计人员可能希望在显示屏关闭、系统进入睡眠状态等情况下执行某些操作。本部分旨在概述为新式待机系统上的电源状态转换公开的通知。 Microsoft 在三个主要转换进入和退出时公开通知。 这些转换和相应的通知如下图所示:

figure 1: A diagram showcasing the use of Modern Standby state transition notifications

本部分假定读者熟悉 ACPI 规范定义的接口。 有关最新 ACPI 规范的信息,请参阅此页面。 请注意,以下 _DSM 与平台无关,不应与此处描述的 Intel 特定 _DSM 相混淆。 对于这个由 UUID 标识的 _DSM,从 Windows 10 版本 1903 开始​​支持函数 0、3-6,并且在 Windows 10 版本 2004 中添加了函数 7 & 和 8。

枚举函数(函数 0)

为了让操作系统与平台交互,必须通过命名空间公开 ACPI 设备。 此设备必须包括一个包含 EISAID(“PNP0D80”) 的 _CID 对象。 此设备的范围必须包含以下 _DSM 定义,该定义指示设备支持哪些 _DSM。

figure 2: A table outlining the _DSM functions to enumerate

为了表示对上面列出的函数 3 到 8 的支持,枚举函数(函数 0)应返回 Buffer(){0xFF, 0x01}。 有关详细信息,请参阅 ACPI 规范的第 9.1.1 部分。

显示屏关闭通知(函数 3)

当操作系统进入所有显示屏(本地和远程,如果有)都已关闭的状态时,将调用此 _DSM 函数。 这可能基于某些用户操作而发生,例如按钮按下或盖子合上事件,或某些显示屏断电计时器到期。 如果 OS 通过调用此函数支持显示屏关闭通知,它还必须调用下一部分所述的显示屏打开通知。

参数:

  • Arg0:UUID:11E00D56-CE64-47ce-837B-1F898F9AA461
  • Arg1:修订 ID:0
  • Arg2:函数索引:3
  • Arg3:未使用

返回:

显示屏打开通知(函数 4)

如果已发生显示屏关闭通知并且任何显示屏(本地或远程)恢复为活动状态,则必须调用此 _DSM 函数。 如果 OS 通过调用此函数支持显示屏打开通知,它还必须调用上一部分所述的显示屏关闭通知。

参数:

  • Arg0:UUID:11E00D56-CE64-47ce-837B-1F898F9AA461
  • Arg1:修订 ID:0
  • Arg2:函数索引:4
  • Arg3:未使用

返回:

最低功耗状态进入通知(函数 5)

当所有软件活动都停止(未保留任何激活器),以允许系统进入其最低功耗状态时,将调用此 _DSM 函数。 在新式待机会话期间,系统可能会多次进入和退出此状态,以便为显式允许的、用户期望的行为提供服务。 有关如何定义此函数以及如何将其与新式待机睡眠进入(函数 7)区分的详细信息,请参阅上图。 如果 OS 支持此最低平台功耗状态进入通知,它还必须调用下一部分所述的相应退出通知(函数 6)。

参数:

  • Arg0:UUID:11E00D56-CE64-47ce-837B-1F898F9AA461
  • Arg1:修订 ID:0
  • Arg2:函数索引:5
  • Arg3:未使用

返回:

最低功耗状态退出通知(函数 6)

每当系统从其最低功耗状态唤醒以运行软件活动(使用激活器)时,都可以调用此 _DSM 函数。 在新式待机会话期间,系统可能会多次进入和退出此状态,以便为显式允许的、用户期望的行为提供服务。 有关如何定义此函数以及如何将其与新式待机睡眠进入(函数 7)区分的详细信息,请参阅上图。 如果 OS 通过调用此函数支持最低功耗状态退出通知,它还必须调用上一部分所述的最低功耗状态进入通知。

参数:

  • Arg0:UUID:11E00D56-CE64-47ce-837B-1F898F9AA461
  • Arg1:修订 ID:0
  • Arg2:函数索引:6
  • Arg3:未使用

返回:

睡眠进入通知(函数 7)

当系统进入新式待机会话的睡眠状态时,将调用此 _DSM 函数。 这定义为进入低功耗阶段,此时所有辅助系统静默行为都已完成,只有显式允许的、用户期望的增值软件活动才能运行。 Microsoft 建议在发生此通知时关闭键盘背光、电源按钮 LED 和风扇,因为这表明较大的工作负载应已完成,系统已正式进入长期睡眠状态。 如果 OS 通过调用此函数支持新式睡眠进入通知,它还必须调用下一部分所述的新式睡眠退出通知。

参数:

  • Arg0:UUID:11E00D56-CE64-47ce-837B-1F898F9AA461
  • Arg1:修订 ID:0
  • Arg2:函数索引:7
  • Arg3:未使用

返回:

睡眠退出通知(函数 8)

当系统退出新式待机会话的睡眠状态时,将调用此 _DSM 函数。 这定义为退出低功耗阶段,此时系统不再处于显式睡眠状态,现在可能允许运行较大的工作负载。 Microsoft 建议键盘背光、电源按钮 LED 和风扇行为可以在发生此通知时恢复,因为这表明随着系统正式退出长期睡眠状态,现在可以运行较大的工作负载。 如果 OS 通过调用此函数支持新式睡眠退出通知,它还必须调用上一部分所述的新式睡眠进入通知。

参数:

  • Arg0:UUID:11E00D56-CE64-47ce-837B-1F898F9AA461
  • Arg1:修订 ID:0
  • Arg2:函数索引:8
  • Arg3:未使用

返回: