系統喚醒事件
下列資訊適用于從 睡眠 (S3) 和休眠 (S4) 喚醒。 如需從新式待命 (S0 低電源閒置) 喚醒,請參閱 在閒置與作用中狀態之間轉換。
您的應用程式可以使用排程計時器或裝置事件,將處於睡眠狀態的電腦還原到工作狀態。 這稱為 喚醒事件。 使用 可等候的計時器物件 來指定系統應該喚醒的時間。 若要建立物件,請使用 CreateWaitableTimer 函 式。 若要設定計時器,請使用 SetWaitableTimer 函 式。 pDueTime參數會指定計時器何時發出訊號。 若要指定系統在收到計時器訊號時應該喚醒,請將 fResume 參數設定為 TRUE。
當系統因為電源開關或使用者活動) 以外的事件 (自動喚醒時,系統會自動將自動閒置計時器設定為至少 2 分鐘。 此計時器可讓應用程式有足夠的時間呼叫 SetThreadExecutionState 函式,以指出它們忙碌中。 這次可讓系統在不再需要電腦之後快速返回睡眠狀態。 下列準則會判斷系統是否回到睡眠狀態:
- 如果系統自動喚醒 (也就是說,沒有任何使用者活動存在) ,則會在自動閒置計時器到期時立即關閉,假設沒有應用程式呼叫 SetThreadExecutionState ,表示系統是必要的。
- 裝置型喚醒預設會觸發自動閒置計時器,除非設備磁碟機指出使用者存在狀態。 如果驅動程式指出使用者存在狀態,則會使用系統閒置計時器。
- 如果系統自動喚醒,但使用者會在處理事件時提供新的輸入,系統不會根據自動閒置計時器自動返回睡眠狀態。 相反地,系統會根據系統閒置計時器回到睡眠狀態。
- 如果系統因使用者活動而喚醒,系統不會根據自動閒置計時器自動返回睡眠狀態。 相反地,系統會根據系統閒置計時器回到睡眠狀態。
當系統自動喚醒時,會將 PBT_APMRESUMEAUTOMATIC 事件廣播到所有應用程式。 因為使用者不存在,所以大部分的應用程式應該不會執行任何動作。 事件處理應用程式,例如傳真伺服器,應該處理其事件。 若要判斷系統是否處於這個狀態,請呼叫 IsSystemResumeAutomatic 函式。 系統自動喚醒時,不會自動開啟顯示器。
如果系統因為使用者活動而喚醒,系統會先廣播 PBT_APMRESUMEAUTOMATIC 事件,後面接著 PBT_APMRESUMESUSPEND 事件。 此外,系統會開啟顯示器。 您的應用程式應該會在系統進入睡眠狀態並準備使用者輸入時,重新開啟關閉的檔案。
相關主題