9.6. 控制方法电源按钮和睡眠按钮设备
系统的电源按钮或睡眠按钮既可以使用控制台按钮中定义的固定寄存器空间来实现,也可以在 AML 代码中实现为控制方法电源按钮设备。无论采用哪种方式,电源按钮覆盖功能或类似的无条件系统断电或复位功能仍由外部硬件实现。
要实现控制方法电源按钮或睡眠按钮设备,请实现 AML 代码以传递与该设备相关的两类通知。第一类是 Notify(Object, 0x80),用于指示当系统处于 S0 状态时按钮被按下,从而表明用户希望机器从 S0 转换到某个睡眠状态。另一类通知是 Notify(Object, 0x2),用于指示当系统处于 S1 到 S4 状态时按钮被按下,并使系统唤醒。当按钮用于唤醒系统时,唤醒通知(Notify(Object, 0x2))必须在 OSPM 实际唤醒之后发生,并且不得发生按钮按下通知(Notify(Object, 0x80))。
唤醒通知表示系统已被唤醒,因为用户按下了该按钮,因此应发生完整的系统恢复(例如,立即打开显示器,等等)。