自定义 Windows 性能电源滑块

使用 Windows 性能电源滑块,最终客户能够快速、智能地用系统性能换取更长的电池续航时间。 客户在四种滑块模式之间切换,以性能换取电池续航时间(反之亦然)时,Windows 电源设置会在幕后进行。 可以为交流和直流电源自定义默认滑块模式,还可以配置用于每个滑块模式的电源设置和 PPM 选项。

客户可以通过单击或点击任务栏中的电池图标来访问其 Windows 设备上的滑块。 滑块显示在“电池”浮出控件中。

Windows performance power slider

客户可以通过将滑块向左和向右移动来选择电源模式。 客户可以选择优先考虑设备剩余的电池续航时间,也可以考虑设备上运行的应用和服务的性能。 上面的屏幕截图显示滑块处于“更好的性能”滑块模式下,这是一个现成的 Windows 默认选项

滑块可用性

Windows 电源滑块适用于运行 Windows 10 内部版本 1709 和更新版本 Windows 的 AMD 和 Intel 平台。 它在具有 Arm64 处理器的设备上不可用。 只有在选择了“平衡”电源计划或从“平衡”派生的任何计划时,设备上才会显示滑块。 用户或 OEM 不能使用任何选项来删除滑块 UX。

在 Windows 升级过程中,具有“高性能”、“节能程序”或任何“OEM 推荐”电源计划的设备不会受到干扰。 如果用户从不支持滑块的 Windows 版本升级到了支持滑块的版本,系统不会更改其“高性能”、“节能程序”或“OEM 推荐”电源计划。 这些用户不会看到滑块 UX,他们仍可按照升级之前的方式配置其电源计划。

仅当用户在“设置”应用下的“系统”>“电源和睡眠”>“其他电源设置”中应用“平衡”电源计划时,才会看到电源滑块。

注意

用户更改为“平衡”性能计划后,无法从 UI 返回使用高性能计划选项,尽管可以从 cmd 行(通过powercfg)返回。

高性能设备指南

如果设备附带高性能电源计划(例如游戏设备),请考虑将对高性能计划定义的相同设置应用于平衡电源计划。 例如,如果在高性能电源计划中关闭 HDD 或显示器的超时值设置为 X 或 Y,请在平衡电源计划中应用这些相同的值。

还可以为固件中的每种滑块模式自定义电源设置。 有关详细信息,请参阅配置电源设置和 PPM 选项

设置默认电源滑块模式

客户可以选择以下四种滑块模式之一:

  • 节电:当系统未连接到电源时,有助于节省功耗并延长电池续航时间。 开启节电模式时,某些 Windows 功能会被禁用、受限或行为不同。 还会降低屏幕亮度。 节电模式只能在直流电源上使用。 若要了解详细信息,请参阅 节电模式
  • 更长的续航:与以往 Windows 版本的默认设置相比,它能提供更长的电池续航时间。 在交流和直流电源上都可用。 在某些情况下,用户会看到此模式标记为“推荐”,而不是在滑块 UI 中显示“更长的续航”
  • 更好的性能:默认的滑块模式,略微看重性能而不是电池续航时间,适合想要牺牲电池续航以获得更好的应用性能的用户。 在交流和直流电源上都可用。
  • 最佳性能:看中性能而不是电池续航时间,适合希望牺牲电池续航以获得性能和响应速度的用户。 在交流和直流电源上都可用。

注意

游戏模式独立于 Windows 性能电源滑块运行,并且可以在任何滑块模式下使用。

设置默认滑块模式

可以为交流和直流电源配置默认滑块模式。 如果客户在交流或直流电源上选择不同的滑块模式,则其选择将成为新的默认设置。

注意

节电模式不作为默认滑块模式提供。

首先,使用 Windows 配置设计器创建预配包。 然后,编辑包中包含的 customizations.xml 文件以包含电源设置。 使用 XML 文件作为 Windows 配置设计器命令行的输入之一,以生成包含电源设置的预配程序包,然后将包应用于映像。 有关如何使用 Windows 配置设计器 CLI 的信息,请参阅使用 Windows 配置设计器命令行界面

Windows 预配路径 预配设置名称
Common\Power\Controls\Settings\{setting name} DefaultOverlayAcPowerScheme:用于交流电源的默认滑块模式
DefaultOverlayDcPowerScheme:用于直流电源的默认滑块模式
961cc777-2547-4f9d-8174-7d86181b8a7a:将滑块设置为“更好的续航”模式
3af9B8d9-7c97-431d-ad78-34a8bfea439f:将滑块设置为“更好的性能”模式
ded574b5-45a0-4f42-8737-46345c09c238:将滑块设置为“最佳性能”模式

注意

如果未配置任何默认模式,则“更好的性能”将是交流和直流电源的默认滑块模式。

XML 示例

下面是用于定义默认滑块模式的示例 customizations.xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<WindowsCustomizatons>
  <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
    <ID>{7e5c6cb3-bd16-4c1a-aacb-98c9151d5f20}</ID>  <!-- ID needs to be unique GUID for the package -->
    <Name>CustomOEM.Power.Settings.Control</Name>
    <Version>1.0</Version>
    <OwnerType>OEM</OwnerType>
  </PackageConfig>
  <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
    <Customizations>
      <Common>
          <Power>
            <Controls>
              <DefaultOverlayDcPowerScheme>961cc777-2547-4f9d-8174-7d86181b8a7a</DefaultOverlayDcPowerScheme>
              <DefaultOverlayAcPowerScheme>ded574b5-45a0-4f42-8737-46345c09c238</DefaultOverlayAcPowerScheme>
           </Controls>
        </Power>
      </Common>
    </Customizations>
  </Settings>
</WindowsCustomizatons>

配置滑块参与的电源设置和 PPM 选项

可以使用覆盖来自定义每个滑块模式参与的电源设置和 PPM 选项。 在以前版本的 Windows 中,只能为每个电源方案配置电源设置,并且只能为每个电源配置文件配置 PPM 选项。 通过引入覆盖,OEM 可以根据用户选择的滑块模式(而不是设备选择的电源方案或电源配置文件)更好地优化电源设置。

若要按滑块模式配置 PPM 和电源设置,请将它们应用于以下覆盖之一:

  • BetterBatteryLifeOverlay
  • MaxPerformanceOverlay

节电模式将继承为受约束的 PPM 配置文件配置的设置(在 ppkg 中,设置配置文件别名应为“约束”)。 最佳性能模式将继承为平衡(默认)配置文件配置的设置。 配置这些配置文件,以自定义关联的滑块模式下参与的设置。 请注意,在 ppkg 中,配置文件方案别名应为“平衡”。

注意

不能通过性能/电源滑块自定义如磁盘和显示超时以及其他旧版电源设置等设置。 只有会影响感知性能差异的设置才能跨滑块模式进行自定义。 每个滑块模式都应视为“轻型”电源计划,该计划仅包含影响性能的设置,例如 CPU 设置 (PPM) 和电源限制。 控制性能的其他因素(GPU、热量等)在 OEM/SV 控制中,它们可以为这些因素创建自定义电源设置,并通过 INF 将它们连接到滑块。

配置 PPM 优化

优化PPM使 OS 能够优选电源或性能,具体取决于用户偏好(类似于用户在全屏模式下观看视频时应用的低功耗媒体配置文件)。 对于“节电”和“更长的续航”滑块模式,PPM 应侧重电池续航时间;对于“更好的性能”和“最佳性能”滑块模式,PPM 应侧重于性能。

可以使用 Windows 预配框架为所有 AMD 和 Intel 平台配置 PPM 选项。 若要详细了解可配置的 PPM 选项以及如何按电源方案进行配置,请参阅处理器电源管理选项。

下面是 customizations.xml 文件的一个示例,该文件使用覆盖来定义“更长的续航”和“最佳性能”滑块模式的 PPM 设置。

<Power>
  <Policy>
    <Settings>
       <Processor>
        <SchemePersonality>
        <!-- EPP override for default PPM profile for "Better Battery"  -->
          <Profile SchemeAlias="BetterBatteryLifeOverlay">
            <Setting ProfileAlias="Default">
              <PerfEnergyPreference>
                <DcValue>60</DcValue>
              </PerfEnergyPreference>
            </Setting>
          </Profile>
          <!--EPP override for default PPM profile for "Best Performance" -->
          <Profile SchemeAlias="MaxPerformanceOverlay">
            <Setting ProfileAlias="Default">
              <PerfEnergyPreference>
                <DcValue>30</DcValue>
              </PerfEnergyPreference>
            </Setting>
          </Profile>
        </SchemePersonality>
      </Processor>
    </Settings>
  </Policy>
</Power>

配置性能和电源设置

若要仅在滑块处于特定模式时才使用自定义电源设置,请在 INF 文件中创建一个 AddPowerSettingDirective,用于指示每个覆盖的默认值。 AddPowerSetting 节中必须包含默认指令。 默认指令指定了三种覆盖,每种都适用于交流和直流电源状态

添加以下三个指令以定义各种滑块模式的设置:

滑块模式 INF GUID Ppkg SchemeAlias
更长的续航 {961CC777-2547-4F9D-8174-7D86181b8A7A} BetterBatteryLifeOverlay
更好的性能 {381B4222-F694-41F0-9685-FF5BB260DF2E} Balanced
最佳性能 {DED574B5-45A0-4F42-8737-46345C09C238} MaxPerformanceOverlay

请参阅 INF AddPowerSetting Directive 获取进一步的说明。

还可通过有效电源模式 API 侦听滑块位置的变化。

为仅使用交流电源的设备启用滑块

从 Windows 版本 1903 开始,作为一项 OEM 自选功能,滑块可用于仅使用交流电源(即非电池供电)的设备。 OEM 可以通过预配程序包为“更长的续航”和“最大性能”覆盖定义电源/性能设置,并为这些设备启用它。 对于仅使用交流电源的设备,没有任何与滑块关联的现成默认值,只有以下定义的设置会随着滑块位置的更改而修改。 部署后,它将显示在可通过现成的“设置”应用访问的“电源和睡眠”页下方。

下面是 customizations.xml 文件的一个示例,该文件使用覆盖来定义“更长的续航”和“最佳性能”滑块模式的 PPM 设置。

注意

只有在选择了“平衡”电源计划或从“平衡”派生的任何计划时,设备上才会显示滑块。

<Power>
  <Policy>
    <Settings>
       <Processor>
        <SchemePersonality>
        <!-- EPP override for default PPM profile for "Better Battery"  -->
          <Profile SchemeAlias="BetterBatteryLifeOverlay">
            <Setting ProfileAlias="Default">
              <PerfEnergyPreference>
                <AcValue>60</AcValue>
              </PerfEnergyPreference>
            </Setting>
          </Profile>
          <!--EPP override for default PPM profile for "Best Performance" -->
          <Profile SchemeAlias="MaxPerformanceOverlay">
            <Setting ProfileAlias="Default">
              <PerfEnergyPreference>
                <AcValue>30</AcValue>
              </PerfEnergyPreference>
            </Setting>
          </Profile>
        </SchemePersonality>
      </Processor>
    </Settings>
  </Policy>
</Power>

电源限制

大多数 Windows 用户同时在操作系统上运行多个应用,并且通常在后台运行的应用会消耗大量电量。 Windows 利用新式芯片功能以高效节能的方式运行后台工作,从而显著提升电池续航时间。 通过限制在后台运行的应用程序的 CPU 频率,电源限制可节省高达 11% 的 CPU 能耗。 在电源限制模式下,当后台工作运行时,Windows 会将 CPU 置于最高效的运行模式中。 在我们的博客文章:电源限制简介中详细了解此功能。

电源限制不会挂起或关闭设备上的应用和服务。

除非滑块设置为“最佳性能”,否则始终会进行“电源限制”。 在“最佳性能”模式下,所有应用程序都会选择退出电源限制。 用户还可以在电池使用情况 UX 中选择为单个应用退出电源限制:

Users can opt apps out of power throttling through UX

OEM 无法在任何 Windows 滑块模式下禁用或更改电源限制。

注意

电源限制仅适用于使用 Intel 第 6 代或第 7 代处理器的设备(包括未采用 Intel SpeedShift 技术的设备)。

查询电源滑块设置

可以使用两个日志来查询在 OS 映像上定义的性能电源滑块设置:Powercfg 输出和 Windows 事件跟踪 (ETW) 日志。

PowerCfg 输出

从提升的命令提示符运行 "powercfg /qh > output.txt",然后在任意文本编辑器中打开 output.txt 以查看设置。

Windows 事件跟踪 (ETW) 日志

使用现成的 WPRUI.exe 或 WPR.exe 收集启用了电源方案的 ETW 日志。 收集和分析 ETW 日志:

  1. 打开提升的命令提示符窗口
  2. 输入命令:WPR -start power -filemode
  3. 使用电源滑块 UX,将滑块移到四种模式中的每一种
  4. 返回到提升的命令提示符窗口并输入命令:WPR -stop PerfPowerSliderSettings.etl
  5. 在 Windows 性能分析器 (WPA) 工具中打开 PerfPowerSliderSettings.etlWindows 评估和部署工具包 (Windows ADK) 中附带了 WPA。
  6. 单击“跟踪”
  7. 单击“系统属性”,然后单击“系统配置”
  8. 在打开的新选项卡中,单击“电源设置”