AddPowerSetting 指令引用一個或多個用於修改或建立 power 設定資訊的區段。 每個 add-power-setting-section 定義一個功率設定、允許的功率設定值、電源設定的友善名稱,以及功率設定的描述。 加值設定區段也指定每個能力方案個性的預設值。 欲了解更多關於電源設定與電源方案特性的資訊,請參閱 「管理裝置效能狀態」。
[DDInstall] |
[DDInstall.HW] |
[DDInstall.CoInstallers] |
[ClassInstall32] |
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows Vista)
[ClassInstall32.ntamd64] | (Windows Vista)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows)
AddPowerSetting=add-power-setting-section[,add-power-setting-section]
一般而言, 加法設定區包括 以下指令:
一個 子群組 指令。
設定指令
包含兩個或以上的 價值 指令或一個 價值範圍 指令的清單。
一組六項 預設 指令。
加功率設定段有以下兩種形式之一:
如果允許的功率設定值可以由兩個或以上的離散值組合來定義,請使用一串 Value 指令來指定允許值,如下:
[add-power-setting-section] [SubGroup = {subgroup-guid}] | SubGroup = {subgroup-guid}, subgroup-name, subgroup-description, subgroup-icon Setting = {setting-guid}, [setting-name],[setting-description],[setting-icon] Value = value-index, value-name,[value-description], value-flags, value-data Value = value-index, value-name,[value-description], value-flags, value-data [Value = value-index, value-name,[value-description], value-flags, value-data ... Value = value-index, value-name,[value-description], value-flags, value-data] (Six required Default directives, each one of which has the following form) Default = power-scheme-personality-GUID, AC/DC-index, default-setting-index | default-setting-value ...如果允許的功率設定值可以以一列遞增的非負整數值來定義,則使用一個 ValueRange 指令來指定允許的值,如下:
[add-power-setting-section] [SubGroup = {subgroup-guid}] | SubGroup = {subgroup-guid}, subgroup-name, subgroup-description, subgroup-icon Setting = {setting-guid}, [setting-name],[setting-description],[setting-icon] ValueRange = range-minimum-value, range-maximum-value, range-increment, [range-unit-label] (Six required Default directives, each one of which has the following form) Default = power-scheme-personality-GUID, AC/DC-index, default-setting-index | default-setting-value ...
Entries
注意
除了 value-data 條目外,後續所有提供字串值的條目都可以以「 指定 AddPowerSetting 字串條目值」中描述的方式來指定該字串。
子群
子群會將邏輯相關的功率設定歸類。
若要指定系統定義的子群組,請包含 子群組 指令,並僅提供 子群組-guid 條目。 系統定義的子群由常數GUID_Xxx_SUBGROUP和NO_SUBGROUP_GUID表示,這些常數在 Wdm.h 中定義。
例如,GUID_VIDEO_SUBGROUP 代表包含電源方案人格的視訊功率設定的子群組。 NO_SUBGROUP_GUID常數代表一組邏輯上不屬於任何子群的設定。 若未包含 子群組 指令,該設定預設會加入邏輯上不屬於任何子群組的設定集合中。
要定義新的子群組,請包含 SubGroup 指令,並提供以下必要的條目: subgroup-guid、 subgroup-name、 subgroup-description 和 subgroup-icon。 新子群的 GUID 必須是唯一的,其他條目則應盡可能具描述性。
子群-guid
所需條目提供識別子群的 GUID。 本條目的格式為 {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}},其中「X」為十六進位數字。
例如,系統定義的常數GUID_VIDEO_SUBGROUP值為 {7516B95F-F776-4464-8C53-06167F40CC99}。 此 GUID 代表包含電源方案人格的視訊功率設定的子群組。
子群名稱
一個字串,指定冪次設定的子群名稱。 若子群為系統定義子群,則不應提供此條目。 若子群為新群,則此條目為必修。
子群描述
一個字串,用來向使用者描述該能力子群。 若子群為系統定義子群,則不應提供此條目。 若子群為新群,則此條目為必修。
子群組圖示
這是對圖示資源的參考。 若子群為系統定義子群,則不應提供此條目。 若子群為新群,則此條目為必修。
圖示資源必須指定為語言中立的登錄值。 關於如何指定語言中立的登錄值,請參見「 指定 AddPowerSetting 字串條目值」。
設定
設定指令用來識別該區段中所有其他條目適用的設定。 在加功率設定區塊中需要一個 設定 指令,而在加功率設定區塊中只能有一個 設定 指令。 若 INF 檔案定義多個設定,每個設定必須在其獨立的 add-power-setting 區段中定義。
以下是與 設定 指令相關的條目。
設定導引
一個指定代表功率設定的 GUID 的必填條目。 本條目的格式為 {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}},其中每個「X」為十六進位數字。
例如,以下是一個自訂的 GUID 值:{BFC0D9E9-549C-483D-AD2A-3D90C98A8B03}。
設定名稱
一個可選的條目,指定包含該功率設定友善名稱的字串。 控制台 的電源選項會顯示這個友善的名稱給使用者。
場景描述
一個可選的條目,指定一個字串,向使用者描述功率設定及其對系統效能的影響。
設定圖示
一個可選的條目,是指向圖示資源的參考。 圖示資源必須由語言中立的登錄值指定。
關於如何指定語言中立登錄值的資訊,請參見「 指定 AddPowerSetting 字串的條目值」。
價值
Value 指令定義了功率設定的允許值。 如果這些值可以最好地定義為兩個或以上的值集合,且每個值可以有特定的值自訂資料型態,則應使用值指令。 在這種情況下,加法設定區應該包含兩個或以上的 價值 指令。 使用者可在 控制台 的電源選項中選擇這些數值之一來設定電源方案。
如果允許的功率設定值可以描述為在某範圍內遞增的非負整數集合,請使用 ValueRange 指令而非 Value 指令來指定允許的功率設定值。
價值指數
必須輸入一個指定唯一索引值的條目,該索引值大於或等於零,並用來參考對應的設定值。 控制台 中的電源選項會依照對應索引值從低到高依序顯示給使用者的電源設定值。
value-name
一個必填的條目,提供一個字串,提供對應設定值的友誼名稱。 控制台 的電源選項會顯示使用者的電源設定值的友善名稱。
價值描述
一個可選的條目,提供一個字串,描述使用者的電源設定值及其對系統電源與效能的影響。
值旗
必須的條目,指定對應的值資料條目的資料型態,如下表所示。
| 旗標值 | 資料類型 |
|---|---|
| 0x00000001 | REG_BINARY |
| 0x00010001 | REG_DWORD |
| 0x00000000 | REG_SZ |
value-data
一個必須的項目,提供對應設定值的資料,該設定值的格式依據對應 值旗 標條目所指定的資料型態而定,具體如下:
REG_BINARY值可以用 0x 符號以十六進位格式指定,或以逗號分隔的成對十六進位數字清單表示,且不含 0x 符號。
例如,以下條目等價:0xFEDCBA9876543210 以及以下逗號分隔的十六進位對數列表:FE、DC、BA、98、76、54、32、10。
REG_DWORD值可以用十六進位格式(使用0x符號)或十進位格式來指定。
REG_SZ 值只能以雙引號包圍的字串(「引號字串」)或 INF 檔案 INF 字串區段中定義的 %strkey% token 表示。
注意
你不應該使用字串值,因為它們無法被定位。 相反地,使用類型 REG_BINARY 或 REG_DWORD的值。
價值範圍
如果允許的功率設定值可以以一連串非負整數值的遞增序列定義,則使用 ValueRange 指令。 電源管理員會驗證使用者在 控制台 的 Power Options 中選擇的設定是否屬於這些允許的值。 允許的值集合由最小允許值、最大允許值及該範圍內允許值之間的遞增量決定。 若某值滿足以下條件,則允許該值:
range-minimum-value + k*range-increment
其中 距離最小值 大於或等於零, k 與 距離增 量大於或等於一,且值小於或等於 距離最大值。 此外, 範圍最大值 應等於某個 k 的 範圍最小值 + k*個範圍增 量。
例如,對於範圍 最小值 等於0、範圍 最大值 等於10,以及範圍 遞增 值等於2,允許的值如下:0、2、4、6、8和10。
如果允許的功率設定值可以用一個值清單來描述,且每個值可以有值特定的自訂資料型別,請使用 Value 指令而非 ValueRange 指令。
範圍-最小值
一個類型為 REG_DWORD 的值,指定最小允許的功率設定。
範圍-最大值
一個類型的 REG_DWORD 值,指定最大允許功率設定值。 最大值必須大於或等於最小值,且對於某個整數 k 大於零,最大值應等於範圍最小值 + k*範圍遞增。
範圍增量
一個型別 REG_DWORD 大於零的值。 此值指定在包含範圍內範圍內的連續值之間的差值,該範圍由範圍 最小值 與 範圍最大值所定義。
範圍-單位-標籤
一個可選字串,描述功率設定值。 字串連同 setting-name,會告知使用者要輸入哪種資料類型。
例如,字串可以用來指定數值單位,如「分鐘」或「%」(代表百分比)。
預設值
AddPowerSetting 區塊中必須包含六項預設指令。
預設指令指定三種系統定義電源方案特性之一的預設值,適用於交流電源狀態,以及三種系統定義電源方案特性,適用於直流電源狀態。
預設值必須有效且準確,這點極為重要。 若使用者未手動設定功率設定,電源管理器會使用 預設指令指定的 預設值。
權力-方案-人格-GUID
以下其中一個 GUID,用以識別預設值所適用的功率方案。
| 個性 | GUID |
|---|---|
| 電源保護 | {A1841308-3541-4FAB-BC81-F71556F20B4A} |
| 高效能 | {8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C} |
| Balanced | {381B4222-F694-41F0-9685-FF5BB260DF2E} |
這些 GUID 在 Wdm.h 中定義。
交流/直流指數
若 AC/DC指數 為0,則該設定適用於交流電源狀態;若AC /DC指數 為1,則該設定適用於直流電源狀態。 除了 0 或 1 以外的數值則不適用。
預設設定索引
若使用 Value 指令來指定允許的值,default-setting-index 即為 Value 指令中 value-index 條目的值。 若使用 ValueRange 指令指定允許值,則此條目不適用。
預設值
若使用 ValueRange 指令指定允許值, default-setting-value 是 ValueRange 指令中允許的值之一。 若使用 Value 指令指定允許值,則此條目不適用。
Remarks
add-power-setting-section 名稱必須在 INF 檔案中唯一,但同一 INF 檔案中可被多個 AddPowerSetting 指令引用。 每個區名必須遵循 INF 檔案通用語法規則中所述的一般規則。
電源管理器不會在裝置卸載後自動移除電源政策。 共同安裝者可透過 Powrprof.h. 中系統提供的電源設定例程,安裝或移除電源設定、數值與預設值。 欲了解更多關於這些電源管理例程的資訊,請參閱 Microsoft Windows SDK 文件中提供的電源管理參考。
此外, Powercfg.exe 命令列工具可用來調整電源設定。 欲了解 Powercfg.exe資訊,請參閱Microsoft幫助與支援中心。
欲了解更多如何使用系統定義的 .nt、 .ntx86、 .ntia64、 .ntamd64、 .ntarm 及 .ntarm64 擴充名的資訊,請參閱「 為多平台與作業系統建立 INF 檔案」。
指定 AddPowerSetting 字串的入口值
除了類型為 REG_SZ 的值資料項目外,所有由 AddPowerSetting 指令提供的字串條目值都可以表示為雙引號包圍的字串(「引號字串」)、定義於 INF 檔案 INF 字串區段的 %strkey% token,或是語言中立的登錄值。
語言中立的登錄檔值用於支援 Windows 多語言使用者介面(MUI),規範如下:
"@file-path,-resourceID[;comment]"
指定語言中立登錄值的條目如下:
檔案路徑
包含該資源的檔案的完全限定路徑。
resourceID
該資源的資源 ID。 對於字串, resourceID 會參考一個字串。 對於圖示而言, resourceID 會參考圖示。
註解
一個可選的值,可用來協助除錯或提供對設定的額外註解。 對於字串資源,電源管理器不會將註解字串與指定的資源字串合併或顯示。
欲了解更多關於如何指定語言中立登錄值的資訊,請參閱 渲染 Shell 與登錄檔字串。
Examples
以下兩個例子定義了控制液晶顯示器亮度的功率設定。 第一個範例展示了如何利用 Value 指令來定義最小亮度、中亮度和最大 LCD 亮度值。
// Within a DDinstall or ClassInstall23 section
AddPowerSetting=LCDDim
...
[LCDDim]
SubGroup = {7516B95F-F776-4464-8C53-06167F40CC99}
Setting = {381B4222-F694-41F0-9685-FF5BB260DF2E}, "LCD Brightness", "Controls the brightness of the LCD display"
Value = 0, "Low", "Minimum Brightness", %FLG_ADDREG_TYPE_DWORD%, 0x50
Value = 1, "Medium", "Medium Brightness", %FLG_ADDREG_TYPE_DWORD%, 0x75
Value = 2, "High", "Maximum Brightness", %FLG_ADDREG_TYPE_DWORD%, 0x100
Default = %GUID_MAX_POWER_SAVINGS%, %AC%, 0
Default = %GUID_MAX_POWER_SAVINGS%, %DC%, 0
Default = %GUID_TYPICAL_POWER_SAVINGS%, %AC%, 2
Default = %GUID_TYPICAL_POWER_SAVINGS%, %DC%, 1
Default = %GUID_MIN_POWER_SAVINGS%, %AC%, 2
Default = %GUID_MIN_POWER_SAVINGS%, %DC%, 2
...
[Strings]
GUID_MAX_POWER_SAVINGS = {a1841308-3541-4fab-bc81-f71556f20b4a}
GUID_TYPICAL_POWER_SAVINGS = {381b4222-f694-41f0-9685-ff5bb260df2e}
GUID_MIN_POWER_SAVINGS = {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
AC = 0
DC = 1
FLG_ADDREG_TYPE_DWORD = 0x00010001
第二個範例展示了如何利用 ValueRange 指令定義一個允許的 LCD 亮度範圍,範圍從 0% 到 100%,允許值之間有 1% 的增量。
// Within a DDinstall or a ClassInstall23 section
AddPowerSetting=LCDDimRange
...
[LCDDimRange]
SubGroup = {7516B95F-F776-4464-8C53-06167F40CC99}
Setting = {381B4222-F694-41F0-9685-FF5BB260DF2E}, "LCD Brightness", "Controls the brightness of the LCD display"
ValueRange = 0, 100, 1, "%"
Default = %GUID_MAX_POWER_SAVINGS%, %AC%, 50
Default = %GUID_MAX_POWER_SAVINGS%, %DC%, 50
Default = %GUID_TYPICAL_POWER_SAVINGS%, %AC%, 95
Default = %GUID_TYPICAL_POWER_SAVINGS%, %DC%, 50
Default = %GUID_MIN_POWER_SAVINGS%, %AC%, 100
Default = %GUID_MIN_POWER_SAVINGS%, %DC%, 100
[Strings]
GUID_MAX_POWER_SAVINGS = {a1841308-3541-4fab-bc81-f71556f20b4a}
GUID_TYPICAL_POWER_SAVINGS = {381b4222-f694-41f0-9685-ff5bb260df2e}
GUID_MIN_POWER_SAVINGS = {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
AC = 0
DC = 1