INF BitReg ディレクティブ
注意事項
Windows 11 バージョン 22H2 以降では、このディレクティブを使用する ドライバー パッケージ は、 ハードウェア デベロッパー センターからの署名の対象ではなくなりました。
ユニバーサル ドライバー パッケージ と Windows ドライバー では、このディレクティブを使用できません。
BitReg ディレクティブは、レジストリ内の既存の REG_BINARY型の値エントリ内のビットを設定またはクリアするために使用される 1 つ以上の INF ライター定義セクションを参照します。 ただし、このディレクティブは、デバイス/ドライバー INF ファイルでほとんど使用しません。
[DDInstall] |
[DDInstall.HW] |
[DDInstall.CoInstallers] |
[ClassInstall32] |
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows)
BitReg=bit-registry-section[,bit-registry-section]...
BitReg ディレクティブは、上記の正式な構文ステートメントに示されているセクションのいずれかで指定できます。 このディレクティブは、次の INF ライター定義セクションのいずれかで指定することもできます。
- INF DDInstall.サービスセクションの AddService ディレクティブで参照される サービス インストール セクション または イベント ログ インストール セクション。
- DDInstall.Interfaces セクションの AddInterface ディレクティブで参照される add-interface-section です。
- InterfaceInstall32 セクションで参照される install-interface-section
BitReg ディレクティブによって参照される各名前付きセクションの形式は次のとおりです。
[bit-registry-section]
reg-root, [subkey], value-entry-name, [flags], byte-mask, byte-to-modify
reg-root, [subkey], value-entry-name, [flags], byte-mask, byte-to-modify
...
bit-registry-section には、それぞれ個別の行に任意の数のエントリを含めることができます。
Entries
reg-root
このエントリで指定された他の値のレジストリ ツリーのルートを識別します。 値は次のいずれかになります。
HKCR
HKEY_CLASSES_ROOTの省略形。
HKCU
HKEY_CURRENT_USERの省略形。
HKLM
HKEY_LOCAL_MACHINEの省略形。
HKU
HKEY_USERS の省略形。
HKR
相対ルート - つまり、この略語を使用して指定されたキーは、次の表に示すように、この BitReg ディレクティブが表示される INF セクションに関連付けられたレジストリ キーに対して相対的です。
BitReg ディレクティブを含む INF セクション | HKR によって参照されるレジストリ キー |
---|---|
INF DDInstall セクション | デバイスの ソフトウェア キー |
INF DDInstall.HW セクション | デバイスの ハードウェア キー |
INF DDInstall.Services セクション | サービス キー |
Note
HKR は INF DefaultInstall セクション から参照される bit-registry-section では使用できません。
HKEY_LOCAL_MACHINE ルート下に格納されるドライバー情報の詳細については、 デバイスとドライバーのレジストリツリーとキーを参照してください。
subkey
この省略可能な値は、INF の Strings セクションで定義された %strkey% トークンとして、または指定された reg-root (key1\key2\key3...) のレジストリ パスとして表され、変更する値エントリを含むキーを指定します。
value-entry-name
変更する (既存の) サブキー内の既存 の REG_BINARY型の値エントリの名前を指定します。 この値は、"引用文字列" またはINFの Strings セクションで定義されている%strkey%トークンとして表現することができます。
flags
この省略可能な 16 進値は、システム定義の低ワードおよび上位ワード フラグ値の ORed ビットマスクとして表され、指定されたバイト マスクで指定されたビットをクリアまたは設定するかどうかを指定します。 既定値は 0 で、レジストリの 64 ビット セクションのビットをクリアします。
これらの各フラグのビットマスク値は次のとおりです。
0x00000000 (FLG_BITREG_CLEARBITS)
バイト マスクで指定されたビットを クリアします。
0x00000001 (FLG_BITREG_SETBITS)
バイト マスクで指定されたビットをセットします。
0x00004000 (FLG_BITREG_32BITKEY) (Windows XP 以降のバージョンの Windows)。
32 ビット レジストリで指定した変更を行います。 指定しない場合、ネイティブ レジストリが変更されます。
byte-mask
このバイト サイズのマスクは、16 進表記で表され、指定 された value-entry-name の現在の値でクリアまたは設定するビットを指定します。
byte-to-modify
このバイト サイズの値は、10 進数で表され、変更する REG_BINARY型の値内のバイトの 0 から始まるインデックスを指定します。
解説
各 bit-registry セクション 名は INF ファイルに対して一意である必要がありますが、同じ INF の他のセクションで BitReg によって参照できます。 INF ライターで定義された各セクション名は、INF ファイル内で一意である必要があり、セクション名を定義するための一般的な規則に従う必要があります。 これらの規則の詳細については、「INF ファイルの一般的な構文規則」を参照してください。
既存 の REG_BINARY型の値エントリの値は、INF ファイル内の別の場所にある add-registry セクション内の現在の値を上書きすることによっても変更できます。 add-registry セクションの詳細については、 AddReg ディレクティブのリファレンスを参照してください。
BitReg ディレクティブを使用するには、別の INF ファイル セクションの定義が必要です。 ただし、既存の REG_BINARY型の値エントリの値は、このようなセクションでビット単位で変更できるため、すべての再メイン ビットの値を保持できます。
例
次の例は、架空のアプリケーションのビット レジストリ セクションを示しています。
[AppX_BitReg]
; set first bit of byte 0 in ProgramData value entry
HKLM,Software\AppX,ProgramData,1,0x01,0
; preceding would change value 30,00,10 to 31,00,10
; clear high bit of byte 2 in ProgramData value entry
HKLM,Software\AppX,ProgramData,,0x80,2
; preceding would change value 30,00,f0 to 30,00,70
; set second and third bits of byte 1 in ProgramData value entry
HKLM,Software\AppX,ProgramData,1,0x06,1
; preceding would change value 30,00,f0 to 30,06,f0