次の方法で共有


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

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

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

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

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

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

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

電源管理 について

システムスリープ条件