Windows power plan settings explorer utility

Discussion in 'Operating Systems' started by mbk1969, Aug 3, 2017.

  1. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    http://www.mediafire.com/file/wt37sbsejk7iepm/PowerSettingsExplorer.zip
    MD5 hash for zip-file: AA4208D2E4BDBFB884E2A5970E26ACD2

    I got sick of fidgeting either in registry or in command line to unhide this or that power plan setting to edit its value in Windows`dialog with advanced power settings. So I wrote this little utility to explore all power plan settings, to edit and to hide/unhide them.

    Utility is built with .Net 4.5 and uses only power management functions from Win API to do the job.
    No reboot required after you apply changes.

    Features:
    - Column "hidden" in main grid gets and sets the visibility of settings in the dialog with advanced power settings.
    - Values can be edited in second grid (no need to unhide them and go to Windows` power plan advanced settings dialog).
    - Double click on the main grid opens regedit and navigates it to the key for that setting in "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\SubGroupGuid" - but you need to launch utility as Administrator for that.
    - Double click on second grid on the column with schemes brings the dialog with advances settings with this scheme selected.
    - Export and Import of settings through buttons at the bottom.
    - Column "active" in second grid gets and sets currently active power scheme.
    - Pressing <Ctrl>+<F> in the main grid shows search toolbar with edit field for search pattern, buttons for searching of next, previous occurrence of pattern, button for hiding of search toolbar; search is performed only in cells of "current" column; search is case insensitive; search is performed with use of regular expressions (Regular Expression Language - Quick Reference), so pattern can be either simple word/part of word/phrase or regular expression.

    Update - some notes on settings relevant to CPPC enabled systems (hardware P-states, aka Intel SpeedShift, may be AMD has these too):

    Processor performance autonomous mode
    - controls whether autonomous mode is enabled on systems that implement version 2 of the CPPC interface, and determines whether desired performance requests should be provided to the platform. On systems with other performance state interfaces, this setting has no effect.

    Note Platforms that support CPPC version 2 may only support autonomous disabled or autonomous enabled mode. If only one mode is supported, the OS uses that mode and ignores the PerfAutonomousMode power setting.

    Values

    0 - Disabled
    The performance state engine disables autonomous mode, determines desired performance levels, and conveys those performance levels to the platform.
    1 - Enabled
    The performance state engine enables autonomous mode and stops providing desired performance levels to the platform.

    Processor energy performance preference policy
    - specifies the value to program in the energy performance preference register on systems that implement version 2 of the CPPC interface.

    When set to 0, the energy performance preference register is programmed to 0 to favor performance. When set to 100, the energy performance preference register is set to 255 to favor energy savings. When set to an intermediate value, the energy performance preference register is programmed to the value: (setting * 255) / 100.

    Values (The value denotes percentage (%).)

    Minimum value - 0
    Maximum value - 100

    Processor autonomous activity window
    - specifies the value to program in the autonomous activity window register on systems that implement version 2 of the CPPC interface and have autonomous mode enabled. Longer values indicate to the platform that it should be less sensitive to short duration spikes/dips in processor utilization.

    Values (The value denotes microseconds.)

    Minimum value - 0
    Maximum value - 1,270,000,000

    Processor performance boost mode
    Intel Turbo Boost and AMD Turbo CORE technologies are features that allow processors to achieve additional performance when it is most useful (that is, at high system loads). However, this feature increases CPU core energy consumption, so Windows Server 2016 configures Turbo technologies based on the power policy that is in use and the specific processor implementation.

    Turbo is enabled for High Performance power plans on all Intel and AMD processors and it is disabled for Power Saver power plans. For Balanced power plans on systems that rely on traditional P-state-based frequency management, Turbo is enabled by default only if the platform supports the EPB register.

    Note The EPB register is only supported in Intel Westmere and later processors.

    For Intel Nehalem and AMD processors, Turbo is disabled by default on P-state-based platforms. However, if a system supports Collaborative Processor Performance Control (CPPC), which is a new alternative mode of performance communication between the operating system and the hardware (defined in ACPI 5.0), Turbo may be engaged if the Windows operating system dynamically requests the hardware to deliver the highest possible performance levels.

    To enable or disable the Turbo Boost feature, the Processor Performance Boost Mode parameter must be configured by the administrator or by the default parameter settings for the chosen power plan. Processor Performance Boost Mode has five allowable values, as shown in Table 5.

    For P-state-based control, the choices are Disabled, Enabled (Turbo is available to the hardware whenever nominal performance is requested), and Efficient (Turbo is available only if the EPB register is implemented).

    For CPPC-based control, the choices are Disabled, Efficient Enabled (Windows specifies the exact amount of Turbo to provide), and Aggressive (Windows asks for "maximum performance" to enable Turbo).

    In Windows Server 2016, the default value for Boost Mode is 3.
    Code:
    Name                                   P-state-based behavior                 CPPC behavior
    -------------------------------------------------------------------------------------------------------
    0 (Disabled)                           Disabled                               Disabled
    1 (Enabled)                            Enabled                                Efficient Enabled
    2 (Aggressive)                         Enabled                                Aggressive
    3 (Efficient Enabled)                  Efficient                              Efficient Enabled
    4 (Efficient Aggressive)               Efficient                              Aggressive
    

    It can be that when autonomous mode is enabled (and activated) other settings for legacy P-states - like minimum processor state and maximum processor state - are just ignored.
     
    Last edited: Mar 16, 2020
    BetA, WhiteLightning, 386SX and 11 others like this.
  2. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    Added the launch of the dialog with advanced power settings by double click in the grid with options (any column).
     
    duttyend likes this.
  3. godknowswhy

    godknowswhy Member Guru

    Messages:
    132
    Likes Received:
    1
    GPU:
    All sorts
    Cool. Thanks for this and everything else you do around here.
     
  4. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    I don`t know whether I should offer the editing of settings values. I overcame my laziness and managed to find easy (but slightly ugly) way of presenting the editing, but do any of you need the editing from this utility? I for example don`t like the way of editing in Windows` own dialog because we don`t see values for all power plan schemes in one place, so here we can do that.
     
    duttyend likes this.

  5. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    http://www.mediafire.com/file/wt37sbsejk7iepm/PowerSettingsExplorer.zip

    Change log:
    - Units for the range settings is added to description.
    - Panel with grid is added for editing of the AC and DC (for notebooks) values for the current (in main grid) setting. So you can edit values without the need to unhide and to launch OS`dialog. Any number of settings can be changed before clicking "Apply" button to save changes.
     
    Last edited: Aug 9, 2017
    duttyend likes this.
  6. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,419
    Likes Received:
    218
    GPU:
    MSI 970 Gaming 4G
    Hi nice work.

    Not trying to give you work, just idea, feedback.
    Maybe add key# values on left(The reg key name).

    The problem i find with windows power plan advanced window is you can't expand/enlarge it so you end up panning/scrolling to see whats there. Thats big down part of the advanced window.
     
  7. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    You mean Guids? It is easy because program has them all. But I smell a geek though - why do you need them?

    Yeah, that`s stupid design.
     
    duttyend likes this.
  8. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,419
    Likes Received:
    218
    GPU:
    MSI 970 Gaming 4G
    I meant Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\06cadf0e-64ed-448a-8927-ce7bf90eb35d
    Its not big deal, only would come in handy if MS added new ones, so it be easy to compare with reg, thats all, no biggy.
     
  9. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    Program can show subgroup` guid and setting` guid (under the name).

    I will look also into showing descriptions of values (showed in combobox cells).
     
    duttyend likes this.
  10. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    http://www.mediafire.com/file/wt37sbsejk7iepm/PowerSettingsExplorer.zip

    Change log:
    - Double click on the main grid with settings opens regedit and navigates it to the key for that setting in "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\SubGroupGuid" - but you need to launch utility as Administrator for that.
    - Double click on second grid (with values) on the column with schemes brings the dialog with advances settings with this scheme selected.
    - Guid of the setting, units, ranges and possible values were moved to second grid: toolstrip at the very bottom and comboboxes with possible values with their descriptions.
     
    Last edited: Aug 11, 2017
    duttyend likes this.

  11. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,419
    Likes Received:
    218
    GPU:
    MSI 970 Gaming 4G
    Nice improvement with settings and links to adavnced setting window and reg key values.
     
  12. BuildeR2

    BuildeR2 Ancient Guru

    Messages:
    2,858
    Likes Received:
    134
    GPU:
    MSI 2080 Ti GX Trio
    Nice utility here! It has WAY more stuff to mess with than I was expecting. I only dared to change the SSD no sleep stuff for the high performance plan so far, but I'm also eyeing some of the core parking stuff. Thanks!
     
  13. Watcher

    Watcher Ancient Guru

    Messages:
    2,544
    Likes Received:
    190
    GPU:
    Gigabyte Windforce R9 380
    @mbk1969

    1. Nice.
    2. Some of these settings, I have neither seen or heard of before.
    3. Seeing them all grouped together like this, I had no idea that there were so many settings.
    4. What the heck have you done now?

    I'll tell you what you've done. You've opened the door to the discussion on which settings are best for, you guessed it - Gaming.

    Quickly looking over my settings, I noted that I had a number a values deactivated. I'm sure that is from tweaking the Power settings already.

    Ideas for future releases

    • Import and Export configuration settings.
    • Indicate default values for each setting ex Active or not active and default values for each key / value.
    • Profiles for different computer uses. ex Gaming, Server, Home computer and so on.

    I think you have opened quite the bag of worms. :)
     
  14. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070

    Blimey... :nerd:
    Export and import can be done easily, ofc. And profile is kinda file with saved values. But who will specify the values for all those roles - gaming, server, home computer - we need experts for that.

    But I don`t get what do you call "activated/deactivated" setting. If you mean checkbox in the column "hidden" then it is namely hidden in the OS`dialog box with advanced settings.

    Btw, I see some settings which never appear in the dialog box with advanced settings regardless of their hidden state.

    PS And possible features are:
    - reset the scheme to default values (which ofc can be done in the dialog box with advanced settings);
    - creating of new additional power plans (schemes);
    - use raw key input to switch power plans (schemes) by specified hotkey.
     
    Last edited: Aug 14, 2017
    duttyend likes this.
  15. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    2,419
    Likes Received:
    218
    GPU:
    MSI 970 Gaming 4G
    Yeh, I think some maybe misunderstand, even the hidden power plans are in use, just not seen or available to change.
    Some power values are HW specific too, like new Skylake SpeedStep stuff.
     

  16. Watcher

    Watcher Ancient Guru

    Messages:
    2,544
    Likes Received:
    190
    GPU:
    Gigabyte Windforce R9 380
    Well, it looks like I took the Hidden Column and in my mind made it "activated/deactivated". That would be my mistake.

    I was surprised to see a number of them Hidden ( Meaning box unchecked in the Hidden Column )? That was interesting to say the least.

    I like the above ideas you have expressed.

    I'll be busy for a while checking those hidden boxes that I unchecked :)

    Let me know if you need a Beta tester.
     
  17. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    No, when setting is checked in column "hidden" then it is hidden in the dialog box with advanced settings.
     
    duttyend likes this.
  18. Watcher

    Watcher Ancient Guru

    Messages:
    2,544
    Likes Received:
    190
    GPU:
    Gigabyte Windforce R9 380
    Well, again my brain is getting in the way of what my eyes are reading.

    My brain saw that the majority of the power options were checked when I first ran the program. In my mind, this would indicate the these items are selected to view in the power option screen.

    Apparently not. When I went to the Windows power option location, I noted that there were no options available to look at. Unchecked all boxes in the Hidden column and all option have returned.

    Thank you for the correction once again.
     
    Last edited: Aug 17, 2017
  19. Watcher

    Watcher Ancient Guru

    Messages:
    2,544
    Likes Received:
    190
    GPU:
    Gigabyte Windforce R9 380
    @mbk1969

    There are three settings under the " Energy Saving settings " location:

    1. Display brightness weight
    2. Energy Saver Policy
    3. Charge level

    in which I have unchecked the Hidden column and verified that the " Attributes " value have changed from " 1 " to " 0 ". When I run " Power Settings Explorer " again, the check marks return to the Hidden column for these three settings but the " Attributes " value remains at " 0 "

    Would you verify this behaviour on your computer(s). Do you know what might be causing this?
     
  20. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,918
    Likes Received:
    5,839
    GPU:
    GeForce GTX 1070
    You can check the same value Attributes at "Energy Saving settings" subgroup registry key. As I take it subgroup itself can be hidden too. And utility doesn`t use registry, it uses only API functions. I will look into this.

    Update: I can confirm that whole subgroup has that Attributes = 1 in registry, so I should add unhiding of whole subgroup to the code.


    Meanwhile import/export are on the way...
     
    Last edited: Aug 17, 2017
    duttyend, Killian38 and Jackalito like this.

Share This Page