共用方式為


系統睡眠準則

只要系統判斷有使用者或應用程式活動,它就不會進入睡眠狀態。 系統可以偵測某些活動,例如使用者輸入或網路通訊。 不過,系統無法偵測到其他活動。 例如,簡報應用程式需要顯示畫面。 不過,應用程式似乎在簡報期間處於閑置狀態,導致系統關閉顯示器。

若要通知系統應用程式忙碌中,請使用 SetThreadExecutionState 函式。 此函式可防止系統在應用程式執行時進入睡眠或關閉顯示器。

簡報和多媒體應用程式必須使用 ES_DISPLAY_REQUIRED 呼叫 SetThreadExecutionState 函式,讓系統知道它不應該讓顯示裝置進入睡眠狀態。 事件處理應用程式,例如管理傳入傳真的工具,必須呼叫 SetThreadExecutionState 搭配 ES_SYSTEM_REQUIRED、處理事件,然後清除旗標,讓系統可以返回睡眠狀態。 請注意,大部分的生產力應用程式不需要使用 SetThreadExecutionState,因為系統通常會依使用者輸入來判斷活動。

為了維護自上次使用者輸入之後的時間,系統會使用顯示閑置定時器和系統閑置定時器。 系統會比較閑置定時器與電源計劃中設定的值。 如果顯示閑置定時器值大於顯示逾時值,而且沒有線程呼叫 SetThreadExecutionState 搭配 ES_DISPLAY_REQUIRED,系統就會關閉顯示器。 同樣地,如果系統閑置定時器大於系統逾時值,而且沒有應用程式透過呼叫具有 ES_SYSTEM_REQUIRED的 SetThreadExecutionState 來要求系統,系統就會進入睡眠狀態。

系統會維護已呼叫 SetThreadExecutionState的應用程式計數。 系統會追蹤呼叫 SetThreadExecutionState 的每個線程,並據以調整計數器。 如果這個計數器達到零,而且沒有任何使用者輸入,系統就會進入睡眠狀態。

如果電源不足,應用程式可以要求使用者介入或要求系統暫停本身。 您可以使用 SetSuspendState 函式來暫停系統作業。

如果系統自動喚醒(PBT_APMRESUMEAUTOMATIC),則沒有任何定時器是相關的。 如需詳細資訊,請參閱 系統喚醒事件

輸入睡眠

當系統進入睡眠狀態時,它會自動保留整個系統和所有應用程式的狀態。 因此,大部分的應用程式不需要採取任何特殊動作。 系統轉換之前需要執行特定動作的應用程式可以註冊電源事件。

當系統傳送 PBT_APMSUSPEND 事件時,每個應用程式在系統開始轉換至睡眠之前,有兩秒的時間可執行任何必要的動作。 應用程式必須限制他們在回應此事件時所採取的動作,以確保他們在分配時完成所有作業。

關於電源管理

系統喚醒事件