Power Scheme Management
Each power scheme is uniquely identified by a GUID. To enumerate all available power schemes, use the PowerEnumerate function. PowerEnumerate can also be used to retrieve all of the power settings for a specified scheme.
The power scheme that is currently in use on the system is called the active power scheme or plan. To retrieve the GUID of the active plan, call the PowerGetActiveScheme function. To change the active power plan, call the PowerSetActiveScheme function.
To create a power scheme, you need to first duplicate an existing scheme by using the PowerDuplicateScheme function, specifying the GUID of the scheme you wish to base your new scheme upon. You should copy one of the built-in schemes and modify the power settings to your needs. Note that creating a power plan does not automatically update the active power plan. You must always call PowerSetActiveScheme to update the active power plan. Existing power plans can be modified and then applied in the same manner.
To remove a power plan, call the PowerDeleteScheme function.
To retrieve additional information about the system power state, call the CallNtPowerInformation function.