INF AddPowerSetting 指示詞
AddPowerSetting 指示詞會參考用來修改或建立電源設定資訊的一或多個區段。 每個 add-power-setting-section 都會定義電源設定、電源設定的允許值、電源設定的易記名稱,以及電源設定的描述。 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]
一般而言, add-power-setting-section 包含下列指示詞:
SubGroup 指示詞。
設定指示詞
兩個或多個 Value 指示詞的清單或一個 ValueRange 指示詞。
一組六個 Default 指示詞。
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 ...
項目
注意
除了 值數據 項之外,提供字串值的所有下列專案都可以使用指定 AddPowerSetting 字串專案值中所述的其中一種方式來指定字串。
小組
子群組會將邏輯上相關的電源設定分組。
若要指定系統定義的子群組,請包含 SubGroup 指示詞,並只提供 子群組 guid 專案。 系統定義的子群組是由 Wdm.h 中定義的常數GUID_Xxx_SUBGROUP和NO_SUBGROUP_GUID來表示。
例如,GUID_VIDEO_SUBGROUP代表子群組,其中包含電源配置特質的視訊電源設定。 NO_SUBGROUP_GUID常數代表未以邏輯方式屬於任何子群組的設定集合。 如果未包含 SubGroup 指示詞,預設會將設定新增至未以邏輯方式屬於任何子群組的設定集合。
若要定義新的子群組,請包含 SubGroup 指示詞,並提供下列必要專案:subgroup-guid、subgroup-name、subgroup-description 和子群組圖示。新子群組的 GUID 必須是唯一的,其他專案應盡可能描述性。
subgroup-guid
必要的專案會提供識別子群組的 GUID。 此專案的格式為 {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX},其中 “X” 是十六進位數位。
例如,系統定義的常數GUID_VIDEO_SUBGROUP值為 {7516B95F-F776-4464-8C53-06167F40CC99}。 此 GUID 代表子群組,其中包含電源配置特質的視訊電源設定。
subgroup-name
指定電源設定子組名的字串。 如果子群組是系統定義的子群組,則不應該提供這個專案。 如果子群組是新的,則需要此專案。
subgroup-description
字串,描述給用戶電源子群組。 如果子群組是系統定義的子群組,則不應該提供這個專案。 如果子群組是新的,則需要此專案。
子群組圖示
圖示資源的參考。 如果子群組是系統定義的子群組,則不應該提供這個專案。 如果子群組是新的,則需要此專案。
圖示資源必須指定為語言中性登錄值。 如需如何指定語言中性登錄值的資訊,請參閱 指定 AddPowerSetting 字串專案值。
設定
Setting 指示詞會識別區段中所有其他專案的套用設定。 載入宏設定區段中需要一個 設定 指示詞,而且在 add-power-setting 區段中只能有一個 Setting 指示詞。 如果 INF 檔案定義一個以上的設定,每個設定都必須在自己的 add-power-setting 區段中定義。
以下是與 Setting 指示詞相關聯的專案。
setting-guid
必要專案,指定表示電源設定的 GUID。 此專案的格式是 {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX},其中每個 “X” 都是十六進位數位。
例如,以下是自定義 GUID 值:{BFC0D9E9-549C-483D-AD2A-3D90C98A8B03}。
setting-name
選擇性專案,指定包含電源設定易記名稱的字串。 控制台 中的Power Options 向使用者顯示這個易記名稱。
setting-description
選擇性專案,指定字串,描述使用者電源設定,以及設定對系統電源和效能的影響。
setting-icon
選擇性專案,這是圖示資源的參考。 圖示資源必須由語言中性登錄值指定。
如需如何指定語言中性登錄值的詳細資訊,請參閱 指定 AddPowerSetting 字串專案值。
值
Value 指示詞會定義電源設定的允許值。 如果值最能定義為兩個或多個值的集合,則應該使用 Value 指示詞,其中每個值都可以有值特定的自定義數據類型。 在此情況下,add-power-setting-section 應該包含兩個或多個 Value 指示詞。 用戶可以在 控制台 的 Power Options 中選取其中一個值,以設定電源配置。
如果允許的電源設定值最能描述為範圍內非負整數的遞增集合,請使用 ValueRange 指示詞,而不是 Value 指示詞來指定允許的電源設定值。
value-index
必要專案,指定唯一的索引值,這個值大於或等於零,用來參考對應的設定值。 控制台 中的電源選項會依對應的索引值,向使用者顯示電源設定值,從最低到最高。
value-name
提供字串的必要專案,提供對應設定值的易記名稱。 控制台 中的電源選項向使用者顯示電源設定值的易記名稱。
value-description
選擇性專案,提供字串,向使用者描述電源設定值,以及設定值對系統電源和效能的影響。
value-flags
必要專案,指定對應值數據項的數據類型,如下表所示。
旗標值 | 資料類型 |
---|---|
0x00000001 | REG_BINARY |
0x00010001 | REG_DWORD |
0x00000000 | REG_SZ |
value-data
提供對應設定值之數據的必要專案,其格式取決於對應 值旗標 專案所指定的數據類型,如下所示:
您可以使用 0x 表示法,或使用逗號分隔的十六進位數字清單,而不使用 0x 表示法,以十六進位格式指定 REG_BINARY 值。
例如,下列專案相等:0xFEDCBA9876543210和下列逗號分隔的十六進位數字清單:FE、DC、BA、98、76、54、32、10。
您可以使用 0x 表示法) 或十進位格式,以十六進位格式 (指定 REG_DWORD 值。
REG_SZ值只能以雙引號括住的字串表示, (“quoted-string”) 或以 INF 檔案 INF Strings 區段中定義的 %strkey% 標記表示。
注意
您不應該使用字串值,因為它們無法當地語系化。 請改用類型 為 REG_BINARY 或 REG_DWORD的值。
ValueRange
如果允許的電源設定值可以定義為指定範圍內非負整數值的遞增序列,請使用 ValueRange 指示詞。 電源管理員會驗證使用者在power Options 中選取的設定,控制台是其中一個允許的值。 允許的值集取決於允許的最小值、允許的最大值,以及範圍內允許值之間的增量。 如果符合下列條件,則允許值:
range-minimum-value + k*range-increment
其中 range-minimum-value 大於或等於零、 k 和 range-increment 大於或等於 1,而該值小於或等於 range-maximum-value。 此外, range-maximum-value 應該等於某些 k 的範圍 -最小值 + k*range-increment 。
例如,若 range-minimum-value 等於 0、 range-maximum-value 等於 10,而 range-increment 等於 2,則允許的值如下所示:0、2、4、6、8 和 10。
如果允許的電源設定值最好描述為值清單,其中每個值都可以有值特定的自定義數據類型,請使用 Value 指示詞,而不是 ValueRange 指示詞。
range-minimum-value
型 別為 REG_DWORD 的值,指定允許的最小電源設定。
range-maximum-value
型 別為 REG_DWORD 的值,指定允許的最大電源設定值。 對於大於零的整數 k,最大值必須大於或等於最小值,而且應該等於 range-minimum-value + k*range-increment。
range-increment
REG_DWORD大於零的類型值。 這個值會指定範圍最小值和 range-maximum-value 所指定之內含範圍內連續值之間的差異。
range-unit-label
描述電源設定值的選擇性字串。 字串與 setting-name 一起通知使用者要輸入的數據類型。
例如,字串可用來指定值單位,例如代表百分比) 的 “minutes” 或 “%” (。
預設值
AddPowerSetting 區段中必須包含六個 Default 指示詞。
Default 指示詞會指定套用至 AC 電源狀態的三個系統定義電源配置特質之一的預設值,以及套用至 DC 電源狀態的三個系統定義電源配置特質。
預設值必須有效且正確。 如果使用者未手動設定電源設定,電源管理員會使用 Default 指示詞所指定的預設值。
power-scheme-personality-GUID
下列其中一個 GUID,可識別預設值所套用的電源配置。
特質 | GUID |
---|---|
[省電] | {A1841308-3541-4FAB-BC81-F71556F20B4A} |
高效能 | {8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C} |
平衡 | {381B4222-F694-41F0-9685-FF5BB260DF2E} |
這些 GUID 定義於 Wdm.h 中。
AC/DC-index
如果 AC/DC-index 為 0,此設定會套用至 AC 電源狀態,如果 AC/DC-index 為 1,則此設定會套用至 DC 電源狀態。 0 或 1 以外的值無效。
default-setting-index
如果使用 Value 指示詞指定允許的值,default-setting-index 是 Value 指示詞之 value-index 專案的值。 如果使用 ValueRange 指示詞來指定允許的值,則不適用這個專案。
default-setting-value
如果使用 ValueRange 指示詞指定允許的值, default-setting-value 是 ValueRange 指示詞所指定的其中一個允許值。 如果使用 Value 指示詞指定允許的值,則不適用此專案。
備註
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 指示詞所提供的所有其他字串專案值,都可以以以雙引號括住的字串表示, (“quoted-string”) ,以 INF 檔案的 INF 字串區段中定義的 %strkey% 標記表示,或以語言中性登錄值表示。
語言中性登錄值可用來支援 Windows 多語系使用者介面 (MUI) ,並指定如下:
"@file-path,-resourceID[;comment]"
指定語言中性登入值的專案如下所示:
file-path
包含資源之檔案的完整路徑。
resourceID
對應資源的資源標識碼。 在字串的情況下, resourceID 會參考字串。 如果是圖示, resourceID 會參考圖示。
註解
選擇性值,可用來協助偵錯,或提供有關設定的其他批注。 在字串資源的情況下,Power Manager 不會結合或顯示具有指定資源字串的批註字串。
如需如何指定語言中性登錄值的詳細資訊,請參閱 轉譯殼層和登錄字串。
範例
下列兩個範例會定義控制LED亮度的電源設定。 第一個範例示範如何使用 Value 指示詞來定義最小值、中型和最大 LED 亮度值。
// 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 指示詞來定義允許的 LED 亮度值範圍,此範圍會從 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