Windows 11を使っていて、バッテリーの持ちやシステムの動作について気になったことはありませんか。特に最新の24H2アップデート以降、電源管理の仕組みが大きく変わりました。今回は、開発者の方から一般ユーザーまで知っておきたいWindows11の省エネルギー通知APIについて、使い方や関連する機能の有効化の手順、そしてどのような仕組みで動いているのかを分かりやすく解説していきます。今までなんとなく使っていた機能の裏側を知ることで、PC環境をより快適に設定できるようになります。

この記事を読むことで、以下のポイントについて理解を深められます
- Windows 11 24H2で導入された新しい電源管理の仕組み
- 省エネルギー状態を取得するための3状態モデルの詳細
- バックグラウンドアプリの動作制限と機能の有効・無効化の手順
- 開発者向けのAPI実装や企業向けのGPOによる設定管理方法
Windows11の省エネルギー通知APIとは
まずは、Windows 11の省エネルギー通知APIがどのような役割を果たしているのか、その基本的な概念から最新のアップデートによる変更点まで、全体像を順番に見ていきましょう。
24H2アップデートの仕様
Windows 11のバージョン24H2(開発コードネーム:Germanium)では、電源管理の考え方が根本から変わりました。これまでおなじみだった「バッテリー節約機能(Battery Saver)」という名称がなくなり、新しく「省エネルギー(Energy Saver)」という機能として生まれ変わっています。
以前のバッテリー節約機能は、「ノートPCのバッテリー残量が20%など、特定の数値を下回った時にだけ発動する」という、あくまで緊急時の避難的な役割でした。しかし新しい省エネルギー機能は、ノートPCがAC電源に繋がっている時や、なんとデスクトップPCであっても、ユーザーの意思で常に有効化できるようになっています。
つまり、バッテリー駆動時間を延ばすことだけが目的ではなく、システム全体の消費電力を抑え、発熱やファンの音を減らすといった「環境への配慮(サステナビリティ)」を目的とした設計にシフトしているのが大きな特徴ですね。
この変更に伴い、システムがアプリに対して「今は省エネモードですよ」と伝えるための仕組みも大きく拡張されました。これが「Windows11 省エネルギー通知API」の役割に直結してきます。
バッテリー状態の取得方法
この新しい省エネルギー機能がオンになると、OSはシステム全体に様々な制限をかけます。しかし、OSが一方的に制限をかけるだけでは、使っているアプリの動きが急にカクついたりして、使い勝手が悪くなってしまいますよね。
そこで重要になるのが、アプリ側が「いまPCは省エネモードになっているな」と気づき、自ら処理を軽くする仕組みです。この状態の変化をリアルタイムでキャッチするために用意されているのが、Windows11 省エネルギー通知APIです。
システムの状態が変わると、このAPIを通じてアプリに通知が送られます。通知を受け取ったアプリは、画面の更新頻度を落としたり、裏での通信を控えたりして、消費電力を抑えつつもユーザーが不快に感じないように動作を調整することが求められます。
拡張された3状態モデル
以前のWindows 10や24H2より前のWindows 11では、バッテリー節約機能は単に「オンかオフか」の2つの状態(2値モデル)しかありませんでした。しかし、新しい省エネルギー機能では、より細かな状況判断ができるように「3状態モデル」へと進化しています。
具体的には、以下の3つの状態(EnergySaverStatus2)を識別できるようになっています。
- Off(オフ): 省エネ機能が完全にオフの状態。アプリはフルパワーで動作できます。
- Standard(標準): ユーザーが手動でオンにしたり、AC電源接続時に環境配慮のためにオンになっている状態。日常的な節電モードです。
- High Savings(高い節約): バッテリー残量が極端に少ないなど、深刻な電力不足の状態。アプリは使い勝手を犠牲にしてでも、徹底的に節電する必要があります。
この3つの状態を使い分けることで、例えば「バッテリーは十分あるけど節電したい時」と「本当にバッテリーが切れそうな時」で、アプリの挙動を変えることができるようになりました。これは開発者にとって非常に重要なポイントですね。
バックグラウンドの制限
省エネルギー機能が有効(Standard または High Savings)になると、OSは強制的にシステム全体にスロットリング(制限)をかけます。具体的にどのような制限がかかるのか見ていきましょう。
- ディスプレイの輝度制御: デフォルトでは画面の明るさが自動的に30%低下します。(設定でオフにすることも可能です)
- 視覚効果の無効化: ウィンドウの半透明効果(Micaエフェクトなど)がオフになり、GPUへの負担を減らします。
- バックグラウンドアプリの停止: 裏で動いている不要なアプリの動作が一時的に止められます。(VoIPなどの通話アプリは例外です)
- 同期と通信の制限: OneDriveの同期や、重要でないWindows Updateのダウンロードがストップします。
このように、OSレベルで強力な制限がかかるため、もしアプリが省エネ状態に気づかずに重い処理を続けようとすると、システム全体がもたつく原因になってしまいます。
機能の有効化と無効化
新しい省エネルギー機能は、ユーザーが任意で設定を変更することができます。設定方法はとても簡単です。
スタートメニューから「設定」を開き、「システム」>「電源とバッテリー」へと進みます。そこで「省エネルギー」の項目を探してください。ここから、機能を常にオンにしたり、バッテリーが一定のパーセンテージ(例:30%)を下回った時だけ自動的にオンにする設定が可能です。
もし「どうしてもバックグラウンドで動かしておきたいアプリがあるのに、省エネ機能のせいで止まってしまう」という場合は、アプリごとに例外設定を設けることもできます。
「設定」>「アプリ」>「インストールされているアプリ」から対象のアプリを選び、「詳細オプション」を開きます。そこにある「バックグラウンドアプリのアクセス許可」を「常に許可」に変更すればOKです。
スリープ設定などがうまくいかない場合は、windowsの画面をロックさせない完全対策ガイドの記事も参考になるかもしれません。
Windows11の省エネルギー通知APIの実装

ここからは、少し技術的な内容に入ります。開発者の方が、実際に自分のアプリにWindows11 省エネルギー通知APIをどのように組み込めばいいのか、具体的な実装や関連する機能について解説していきます。
C#やモダンアプリの対応
C#やWinUI 3などを使ったモダンなWindowsアプリ開発(Windows App SDK)においては、少し注意が必要です。実は24H2の移行期に、既存のAPIで状態が正しく取得できないという問題がありました。
古いAPIは「バッテリー残量が20%以下ならオン」という古いルールに縛られていたため、ユーザーが手動で省エネをオンにしても、APIは「オフ」と返してしまうことがあったんです。これを解決するために登場したのが、新しいEnergySaverStatus2というAPIです。
モダンアプリを開発する場合は、必ずこの新しいAPIを使ってください。具体的には PowerManager.IsEnergySaverStatus2Supported でPCが新機能に対応しているかを確認し、PowerManager.EnergySaverStatus2Changed イベントを使って、状態がStandardやHighSavingsに変わった瞬間にアプリの処理を軽くするようなプログラムを書くのが現在の正解です。
C++とWin32の連携
C++などのネイティブ言語を使って、従来からあるWin32 APIで開発を行っている場合も、新しい3状態モデルに対応するための拡張が行われています。
ネイティブアプリでは、PowerSettingRegisterNotification という関数を使って状態の変化を監視しますが、24H2からは新しいGUID(GUID_ENERGY_SAVER_STATUS)が追加されました。
この新しいGUIDを使うことで、ネイティブアプリでも「Off(0)」「Standard(1)」「High Savings(2)」という3つの状態を正確に受け取ることができるようになります。もし古いGUID(GUID_POWER_SAVING_STATUS)を使っているアプリがあれば、新しいものにアップデートすることを強くお勧めします。
効率モードとEcoQoS
アプリが省エネルギー通知APIから「今は省エネモードだ」という合図を受け取った後、具体的にどうやって節電すればいいのでしょうか。ただ通信頻度を落とすだけでなく、Windows 11の強力な機能である「EcoQoS(効率モード)」を活用するのがベストプラクティスです。
アプリが自らのプロセスにこのEcoQoSフラグを立てると、タスクマネージャー上で緑色の葉っぱのアイコン(効率モード)が表示されます。すると、Windows 11のカーネルが自動的に以下のような制御を行ってくれます。
- CPUクロックの制限: 電力を食うターボブーストなどを抑え、エネルギー効率の良い速度で処理を行います。
- Eコアの積極利用: 最新のCPU(Intel第12世代以降など)では、高性能なPコアではなく、省電力なEコアを優先して使ってくれます。
- タイマー要求の緩和: アプリからの細かい割り込み要求を無視して、CPUが深く眠れる(Cステートに入る)時間を長くしてくれます。
通知APIで状態を知り、EcoQoSで実行効率を落とす。この連携が、これからのWindowsアプリ開発には欠かせないテクニックになります。
企業向けのGPO制御方法
最後に、企業でたくさんのWindows 11 PCを管理しているIT管理者向けの情報を紹介します。会社全体で消費電力を抑えたい場合、社員が勝手に省エネ設定を変えられないように一括管理することが可能です。
これには、グループポリシー(GPO)やレジストリを使います。例えば、「省エネルギー機能を常にオンにする」というポリシーを適用すると、社員のPCのクイック設定パネルのボタンがグレーアウトし、解除できなくなります。
レジストリによる強制設定の例
キーパス: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Power\EnergySaver
値名: EnableEnergySaver (DWORD値)
データ: 1 に設定すると「常時オン」が強制されます。
※レジストリの編集はシステムに重大な影響を与える可能性があるため、事前にバックアップを取り、慎重にテストを行ってください。最終的な運用は管理者の自己責任で行うようお願いいたします。
また、コマンドラインツールの powercfg を使えば、「バッテリーが何パーセントになったらオンにするか」という閾値を一斉に変更することも可能です。IntuneなどのMDMツールと組み合わせることで、社内のPCの電力管理を効率的に行うことができます。
Windows11の省エネルギー通知APIまとめ
Windows 11の24H2アップデートで導入された新しい電源管理は、単なるバッテリー長持ち機能から、システム全体の持続可能性(サステナビリティ)を追求する機能へと大きく進化しました。
その核となるのが、アプリがシステムの状態を正確に把握するためのWindows11 省エネルギー通知APIです。従来のオン・オフだけの2値モデルから、StandardとHighSavingsを区別できる3値モデルへと解像度が上がり、EcoQoSと組み合わせることで、ユーザーの快適さを損なわずに劇的な省電力を実現できるようになりました。
開発者の方はもちろん、一般のユーザーの方も、この新しい省エネルギーの仕組みを理解することで、よりスマートで環境に優しいPCライフを送ることができるはずです。ぜひご自身のPCの設定や、使っているアプリの挙動をチェックしてみてくださいね。

