Share via


システム ウェイクアップ イベント

次の情報は、 スリープからの復帰 (S3) と休止状態 (S4) に適用されます。 モダン スタンバイ (S0 低電力アイドル) からのスリープ解除については、「 アイドル状態とアクティブ状態の切り替え」を参照してください。

アプリケーションでは、スケジュールされたタイマーまたはデバイス イベントを使用して、スリープ状態のコンピューターを動作状態に復元できます。 これは ウェイクアップ イベントと呼ばれます。 待機可能タイマー オブジェクトを使用して、システムをスリープ解除する時刻を指定します。 オブジェクトを作成するには、 CreateWaitableTimer 関数を 使用します。 タイマーを設定するには、 SetWaitableTimer 関数を 使用します。 pDueTime パラメーターは、タイマーを通知するタイミングを指定します。 タイマーが通知されたときにシステムをスリープ解除するように指定するには、 fResume パラメーターを TRUE に設定 します

イベント (電源スイッチやユーザー アクティビティ以外) が原因でシステムが自動的にスリープ解除されると、自動アイドル タイマーが少なくとも 2 分に自動的に設定されます。 このタイマーは、アプリケーションがビジー状態であることを示すために SetThreadExecutionState 関数を呼び出すのに十分な時間を与えます。 この時間により、コンピューターが不要になった後、システムはすぐにスリープ状態に戻ります。 次の条件は、システムがスリープ状態に戻るかどうかを決定します。

  • システムが自動的にスリープ解除された場合 (つまり、ユーザー アクティビティが存在しない場合)、無人アイドル タイマーの有効期限が切れるとすぐにシャットダウンされます。これは、システムが必要であることを示す SetThreadExecutionState を呼び出したアプリケーションがないと仮定します。
  • デバイス ベースのスリープ解除では、デバイス ドライバーがユーザーの存在を示していない限り、既定で無人アイドル タイマーがトリガーされます。 ドライバーがユーザーの存在を示している場合は、システム アイドル タイマーが使用されます。
  • システムが自動的にスリープ解除しても、イベントの処理中にユーザーが新しい入力を提供した場合、システムは無人アイドル タイマーに基づいて自動的にスリープ状態に戻りません。 代わりに、システムはシステムアイドルタイマーに基づいてスリープ状態に戻ります。
  • ユーザー アクティビティが原因でシステムがスリープ解除された場合、システムは無人アイドル タイマーに基づいて自動的にスリープ状態に戻りません。 代わりに、システムはシステム アイドル タイマーに基づいてスリープ状態に戻ります。

システムが自動的にスリープ解除されると、 PBT_APMRESUMEAUTOMATIC イベントがすべてのアプリケーションにブロードキャストされます。 ユーザーが存在しないため、ほとんどのアプリケーションでは何も行う必要はありません。 FAX サーバーなどのイベント処理アプリケーションは、それらのイベントを処理する必要があります。 システムがこの状態であるかどうかを判断するには、 IsSystemResumeAutomatic 関数を呼び出します。 システムが自動的にスリープ解除されると、ディスプレイは自動的にオンになりません。

ユーザー アクティビティが原因でシステムがスリープ解除された場合、システムは最初に PBT_APMRESUMEAUTOMATIC イベントをブロードキャストし、その後 に PBT_APMRESUMESUSPEND イベントをブロードキャストします。 さらに、システムはディスプレイをオンにします。 アプリケーションは、システムがスリープ状態になったときに閉じたファイルを再度開き、ユーザー入力の準備をする必要があります。

電源管理について

システム スリープ条件