システム電源管理イベント
システム電源管理イベントは、システムの電源状態、デバイスまたはシステムの動作モード、または電源設定の値の変更です。 これらのイベントは、アプリケーションとインストール可能なドライバーの操作に影響を与える可能性があるため、システムは各イベントの通知をブロードキャストすることによって、すべてのアプリケーションとインストール可能なドライバーに通知します。 アプリケーションとサービスは、 RegisterPowerSettingNotification 関数を使用して通知を登録します。 通知は、電源管理イベントと関連するイベント固有のデータを含む WM_POWERBROADCAST メッセージを 介して受信されます。
システム電源状態イベント
システム電源状態イベントは、電源モジュールまたはシステム・バッテリーの状態に変更がある場合に発生します。 たとえば、システムは、ユーザーがバッテリから AC 電源に切り替わるたびに 、またはその逆に、PBT_APMPOWERSTATUSCHANGE イベントをブロードキャストします。 また、バッテリ電力の残量がユーザーが指定したしきい値を下回る場合や、指定した割合でバッテリ電力が変更された場合も、このイベントがブロードキャストされます。
操作モード イベント
操作モード イベントは、非アクティブ状態によるシステムのスリープ状態への切り替えや、ユーザーがシステムを手動でスリープ状態にするなど、電力消費量が変化した場合に発生します。 システムは、電力消費量の変更が行われる前に、これらの変更に関するイベントをブロードキャストします。 たとえば、システムがアイドル状態であると判断した場合、電源を節約するために操作とスリープを中断しようとしていることをアプリケーションとドライバーに通知する PBT_APMSUSPEND イベントをブロードキャストします。 アプリケーションとドライバーは、ファイルを閉じ、データを保存して潜在的なデータ損失を回避することで、スリープ状態に備えることができます。
システムが 重大な中断を実行するとき、システムはすぐに重大な電池警報のような重大な状態が原因でスリープ状態に置かれる。 通常のスリープ遷移とは対照的に、システムは重大な中断を実行する前にアプリケーションとドライバーに通知しません。 そのため、アプリケーションは重要な中断を処理するように準備する必要があります。
システム操作が中断された後に復元されると、システムはすべてのアプリケーションとドライバーに通知します。 また、アプリケーションまたはドライバーがデータを復元して操作を続行するための適切な手順を実行できるように、システムが重大な中断から再開されているかどうかを示します。
アプリケーションは、ユーザーが応答できない可能性があるため、ユーザーの介入なしにスリープ状態への移行を処理するすべての試行を行う必要があります。 たとえば、ノートブック コンピューター上の蓋を閉じてもかまいません。 アプリケーションは、システムがスリープ状態になるという通知を受け取ると、必要な操作をすばやく実行し、メッセージ ループから戻る必要があります。 システムは、タイムアウトする前にこのメッセージを処理するときに、アプリケーションごとに最大 2 秒を許可します。
電源設定変更イベント
電源設定の変更イベントは、電源設定の値に変更がある場合に発生します。 たとえば、ユーザーは、コントロール パネルの電源オプション アプリケーションで電源プランを [高パフォーマンス] から [バランス] に変更します。 この場合、システムは電源プランが変更されたことを示すイベントをブロードキャストします。 このイベントには、電源設定の新しい値が含まれます。
関連トピック