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