Skip to content

Feature: Add EnergySaverStatus2 API to Microsoft.Windows.System.Power.PowerManager #6483

@RuthNjeri

Description

@RuthNjeri

This issue tracks the implementation of the new EnergySaverStatus2 API in
the Windows App SDK
(Microsoft.Windows.System.Power), expanding the existing two-state
EnergySaverStatus (On/Off)
to a three-state model introduced in the Windows Germanium release (Windows11, 24H2 build).

Background

The existing PowerManager.EnergySaverStatus property reports only On or
Off. Energy Saver now has three distinct states:

  • Off – Energy Saver is disabled
  • Standard – Energy Saver active; mild performance impact acceptable
    (battery > 20%)
  • HighSavings – Energy Saver active; maximum power savings preferred
    (battery ≤ 20%)

The legacy API has a known bug: when Energy Saver is in Standard mode, it
incorrectly reports
Off. EnergySaverStatus2 fixes this.

New APIs

All APIs are under Microsoft.Windows.System.Power, contract version
PowerNotificationsContract v3.

// New enum
public enum EnergySaverStatus2 { Unknown = 0, Off, Standard, HighSavings }

// New PowerManager members
public static EnergySaverStatus2 EnergySaverStatus2 { get; }
public static event System.EventHandler<object> EnergySaverStatus2Changed;
public static bool IsEnergySaverStatus2Supported(); 

Legacy Mapping

┌────────────────────┬───────────────────────────────────────────┐
│ EnergySaverStatus2 │ Legacy EnergySaverStatus                  │
├────────────────────┼───────────────────────────────────────────┤
│ Off                │ Off                                       │
├────────────────────┼───────────────────────────────────────────┤
│ Standard           │ Off (not distinguishable in legacy API)   │
├────────────────────┼───────────────────────────────────────────┤
│ HighSavings        │ On                                        │
└────────────────────┴───────────────────────────────────────────┘

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions