INF AddPowerSetting ディレクティブ
AddPowerSetting ディレクティブは、電源設定情報を変更または作成するために使用される 1 つ以上のセクションを参照します。 各 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 ディレクティブ。
A Setting ディレクティブ
2 つ以上の 値 ディレクティブまたは 1 つの ValueRange ディレクティブのリスト。
6 つの Default ディレクティブのセット。
add-power-setting-section は、次の 2 つの可能な形式のいずれかを受け取ります。
許容される電力設定値を 2 つ以上の不連続値のセットとして最適に定義できる場合は、値 ディレクティブのリストを使用して、次のように許容値を指定します。
[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 ...
許可される電源設定値を、指定した範囲内の負でない整数値の増分シーケンスとして最適に定義できる場合は、次のように、1 つの 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 ...
エントリ
Note
値データ エントリを除き、文字列値を指定する次のすべてのエントリは、「AddPowerSetting 文字列エントリ値の指定」で説明されている方法のいずれかで文字列を指定できます。
subgroup
サブグループは、論理的に関連する電力設定をグループ化します。
システム定義サブグループを指定するには、SubGroup ディレクティブを含め、サブグループ guid エントリのみを指定します。 システム定義サブグループは、Wdm.h で定義されている定数 GUID_Xxx_SUBGROUP および NO_SUBGROUP_GUID で表されます。
たとえば、GUID_VIDEO_SUBGROUPは、電源スキームのパーソナリティのビデオ電源設定を含むサブグループを表します。 NO_SUBGROUP_GUID定数は、サブグループに論理的に属していない設定のコレクションを表します。 SubGroup ディレクティブが含まれていない場合、既定では、サブグループに論理的に属していない設定のコレクションに設定が追加されます。
新しいサブグループを定義するには、SubGroup ディレクティブを含め、サブグループ guid、サブグループ名、サブグループの説明、サブグループ アイコン の必須エントリを指定します。新しいサブグループの GUID は一意である必要があり、他のエントリはできるだけわかりやすいものにする必要があります。
サブグループ guid
必要なエントリは、サブグループを識別する GUID を提供します。 このエントリの形式は {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} で、"X" は 16 進数です。
たとえば、システム定義定数GUID_VIDEO_SUBGROUPの値は {7516B95F-F776-4464-8C53-06167F40CC99} です。 この GUID は、電源スキームのパーソナリティのビデオ電源設定を含むサブグループを表します。
サブグループ名
電源設定のサブグループ名を指定する文字列。 サブグループがシステム定義サブグループである場合は、このエントリを指定しないでください。 サブグループが新しい場合は、このエントリが必要です。
サブグループの説明
パワー サブグループをユーザーに説明する文字列。 サブグループがシステム定義サブグループである場合は、このエントリを指定しないでください。 サブグループが新しい場合は、このエントリが必要です。
サブグループ アイコン
アイコン リソースへの参照。 サブグループがシステム定義サブグループである場合は、このエントリを指定しないでください。 サブグループが新しい場合は、このエントリが必要です。
アイコン リソースは、言語に依存しないレジストリ値として指定する必要があります。 言語に依存しないレジストリ値を指定する方法については、「AddPowerSetting 文字列エントリ値の指定」を参照してください。
設定
Setting ディレクティブは、セクション内の他のすべてのエントリが適用される設定を識別します。 add-power-setting セクションには 1 つの Setting ディレクティブが必要であり、add-power-setting セクションには Setting ディレクティブを 1 つだけ指定できます。 INF ファイルで複数の設定が定義されている場合は、それぞれの設定を独自の add-power-setting セクションで定義する必要があります。
Setting ディレクティブに関連付けられているエントリを次に示します。
setting-guid
電源設定を表す GUID を指定する必須のエントリ。 このエントリの形式は {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} で、"X" は 16 進数です。
たとえば、カスタム GUID 値は {BFC0D9E9-549C-483D-AD2A-3D90C98A8B03} です。
設定名
電源設定のフレンドリ名を含む文字列を指定する省略可能なエントリ。 コントロール パネルの 電源オプションでは、このフレンドリ名がユーザーに表示されます。
設定の説明
電源設定と、設定がシステム電源とパフォーマンスに与える影響をユーザーに説明する文字列を指定する省略可能なエントリ。
設定アイコン
アイコン リソースへの参照である省略可能なエントリ。 アイコン リソースは、言語に依存しないレジストリ値として指定する必要があります。
言語に依存しないレジストリ値を指定する方法については、「AddPowerSetting 文字列エントリ値の指定」を参照してください。
値
値 ディレクティブは、電源設定に使用できる値を定義します。 値ディレクティブは、値を 2 つ以上の値のセットとして最適に定義できる場合に使用する必要があります。各値には値固有のカスタム データ型を指定できます。 この状況では、add-power-setting-section に 2 つ以上の 値 ディレクティブを含める必要があります。 ユーザーは、コントロール パネルの電源オプション でこれらの値のいずれかを選択して、電源スキームを構成できます。
許容される電力設定値を、範囲内の負でない整数の増分セットとして最適に記述できる場合は、値 ディレクティブの代わりに ValueRange ディレクティブを使用して、許容される電力設定値を指定します。
インデックス値
0 以上の一意のインデックス値を指定し、対応する設定値を参照するために使用される必須のエントリ。 コントロール パネルの 電源オプション では、電源設定値が、対応するインデックス値の順序でユーザーに表示されます(最小値から最大値)。
値の名前
対応する設定値のフレンドリ名を提供する文字列を提供する必須のエントリ。 コントロール パネルの 電源オプション では、電源設定値のフレンドリ名がユーザーに表示されます。
値の説明
電源設定と、設定がシステム電源とパフォーマンスに与える影響をユーザーに説明する文字列を指定する省略可能なエントリ。
値フラグ
次の表に示すように、対応する値データ エントリのデータ型を指定する必須のエントリ。
フラグの値 | データの種類 |
---|---|
0x00000001 | REG_BINARY |
0x00010001 | REG_DWORD |
0x00000000 | REG_SZ |
値データ
次のように、対応する設定値のデータを提供する必要なエントリ。その形式は、対応する 値フラグ エントリで指定されたデータ型によって異なります。
REG_BINARY値は、0x 表記を使用して 16 進形式で指定することも、0x 表記を使用せずにペアの 16 進数のコンマ区切りリストとして指定することもできます。
たとえば、次のエントリは同等です。0xFEDCBA9876543210と、ペアになっている 16 進数のコンマ区切りリスト: FE、DC、BA、98、76、54、32、10。
REG_DWORD値は、16 進形式 (0x 表記を使用) または 10 進形式で指定できます。
REG_SZ値は、二重引用符で囲まれた文字列 ("引用符で囲まれた文字列") または INF ファイルの INF 文字列 セクションで定義されている %strkey% トークンとしてのみ表すことができます。
Note
文字列値はローカライズできないため、使用しないでください。 代わりに、REG_BINARY 型または REG_DWORD 型の値を使用します。
DXVA2_ValueRange
指定した範囲内の負でない整数値の増分シーケンスとして、許容される電源設定値を定義できる場合は、ValueRange ディレクティブを使用します。 Power Manager は、ユーザーが コントロール パネルの 電源オプション で選択した設定が、次に示す値の 1 つであることを検証します。 許可される値のセットは、最小値、最大許容値、および範囲内の許容値の間の増分によって決まります。 値は、次の条件を満たす場合に許可されます。
range-minimum-value + k*range-increment
range-minimum-value が 0 以上で、k と範囲増分が 1 以上で、値が range-maximum-value 以下である場合。 さらに、範囲の最大値 は、数 k の 範囲の最小値 + k* の範囲増分と等しい必要があります。
たとえば、 0 に等しい範囲最小値 、 10 に等しい範囲最大値 、および 2 に等しい範囲増分 の場合、使用できる値は 0、2、4、6、8、10 です。
許容される電力設定値を値のリストとして最適に記述できる場合は、各値に値固有のカスタム データ型を指定できます。値 範囲ディレクティブの代わりに 値 ディレクティブを使用します。
範囲の最小値
許容される最小電力設定を指定する REG_DWORD 型の値。
範囲の最小値
許容される最小電力設定を指定する REG_DWORD 型の値。 最大値は最小値以上である必要があり、0 より大きい整数 k の場合は、範囲最小値 + k*範囲増分と等しい必要があります。
range-increment
0 より大きい REG_DWORD 型の値。 この値は、range-minimum-value と range-maximum-value で指定された包括範囲内の連続する値の差を指定します。
range-unit-label
電源設定値を表す省略可能な文字列。 文字列 と setting-name は、入力するデータの種類をユーザーに通知します。
たとえば、文字列を使用して、"minutes" や "%" (パーセントを表す) などの値の単位を指定できます。
既定値
AddPowerSetting セクションに含める必要がある Default ディレクティブがあります。 Default ディレクティブは、AC 電源状態に適用される 3 つのシステム定義電源方式パーソナリティの 1 つと、DC 電源状態に適用される 3 つのシステム定義電源スキームパーソナリティの既定値を指定します。
既定値が有効で正確であることが非常に重要です。 ユーザーが電源設定を手動で設定しない場合、電源マネージャーは Default ディレクティブで指定された既定値を使用します。
power-scheme-personality-GUID
次のいずれかの GUID。既定値が適用される電源スキームを識別します。
個性 | GUID |
---|---|
省電力 | {A1841308-3541-4FAB-BC81-F71556F20B4A} |
高性能 | {8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C} |
Balanced | {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
値 ディレクティブを使用して許可される値を指定する場合、default-setting-index は値ディレクティブの value-index エントリの値です。 ValueRange ディレクティブを使用して許可される値を指定する場合、このエントリは適用されません。
既定値の設定
ValueRange ディレクティブを使用して許容値を指定する場合、既定値は ValueRange ディレクティブで指定される許容値の 1つです。 ValueRange ディレクティブを使用して許可される 値 を指定する場合、このエントリは適用されません。
解説
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
対応するリソースのリソースID。 文字列の場合、resourceID は文字列を参照します。 アイコンの場合、resourceID はアイコンを参照します。
コメント
デバッグを支援したり、設定に関する追加のコメントを提供したりするために使用できる省略可能な値。 文字列リソースの場合、Power Manager は、指定されたリソース文字列とコメント文字列を組み合わせたり表示したりしません。
言語に依存しないレジストリ値を指定する方法の詳細については、「シェルとレジストリ文字列のレンダリング」を参照してください。
例
次の 2 つの例では、LCD の明るさを制御する電源設定を定義します。 最初の例では、値 ディレクティブを使用して、最小、中、最大 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
2 番目の例では、ValueRange ディレクティブを使用して、0% から 100% の範囲で、許容される値の間に 1% の増分を指定して、許可される LCD の明るさの値の範囲を定義する方法を示します。
// 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