Директива INF BitReg

Внимание!

Начиная с Windows 11 версии 22H2 пакет драйвера, использующий эту директиву, больше не может быть сигнатурой из Центра разработчиков оборудования.

Универсальные пакеты драйверов и драйверы Windows не могут использовать эту директиву.

Директива BitReg ссылается на один или несколько разделов, определяемых inf-writer, которые используются для задания или очистки битов в существующей записи типа REG_BINARY в реестре. Однако эта директива редко используется в 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:

Каждый именованный раздел, на который ссылается директива 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
...

Битовый раздел реестра может содержать любое количество записей, каждая из которых размещена в отдельной строке.

Записи

reg-root
Определяет корень дерева реестра для других значений, указанных в этой записи. Он может иметь одно из следующих значений:

HKCR
Сокращение для HKEY_CLASSES_ROOT.

HKCU
Сокращение для HKEY_CURRENT_USER.

HKLM
Сокращение для HKEY_LOCAL_MACHINE.

HKU
Сокращение для HKEY_USERS.

HKR
Относительный корень — то есть ключи, указанные с помощью этого аббревиатуры, относятся к разделу реестра, связанному с разделом INF, в котором указана эта директива BitReg , как показано в следующей таблице.

Раздел INF, содержащий директиву BitReg Раздел реестра, на который ссылается HKR
Раздел INF DDInstall Программный ключ устройства
INF DDInstall. Раздел HW Аппаратный ключ устройства
INF DDInstall. Раздел "Службы " Ключ служб

Примечание

HKR нельзя использовать в битовом разделе реестра, на который ссылается раздел DefaultInstall INF.

Дополнительные сведения о драйвере, хранящиеся в корневом каталоге HKEY_LOCAL_MACHINE , см. в разделе Деревья реестра и ключи для устройств и драйверов.

Подраздел
Это необязательное значение, выраженное в виде маркера %strkey% , определенного в разделе Strings inf или в виде пути к реестру в заданном корню реестра (key1\key2\key3...), указывает ключ, содержащий запись значения, которую необходимо изменить.

value-entry-name
Указывает имя существующей записи значения типа REG_BINARY в подразделе (existing) для изменения. Он может быть выражен как "строка в кавычках" или как токен %strkey%, определенный в разделе Строки INF.

flags
Это необязательное шестнадцатеричное значение, выраженное в виде битовой маски ORed для определенных системой значений низких слов и флагов высоких слов, указывает, следует ли очищать или задавать биты, указанные в заданной байтовой маске. Значение по умолчанию равно нулю, что очищает биты в 64-разрядном разделе реестра.

Ниже приведены значения битовой маски для каждого из этих флагов.

0x00000000 (FLG_BITREG_CLEARBITS)
Очистите биты, указанные с помощью байтовой маски.

0x00000001 (FLG_BITREG_SETBITS)
Задайте биты, заданные с помощью байтовой маски.

0x00004000 (FLG_BITREG_32BITKEY) (Windows XP и более поздние версии Windows).
Внесите указанное изменение в 32-разрядный реестр. Если этот параметр не указан, изменения вносятся в собственный реестр.

байтовая маска
Эта маска размера байтов, выраженная в шестнадцатеричной нотации, указывает, какие биты следует очистить или задать в текущем значении заданного значения value-entry-name.

байт для изменения
Это значение размера байта, выраженное в десятичном формате, задает отсчитываемый от нуля индекс байта в REG_BINARY-типе, который необходимо изменить.

Комментарии

Имя каждого битового раздела реестра должно быть уникальным для INF-файла, но на него могут ссылаться директивы BitReg в других разделах того же INF. Каждое имя раздела, созданного с помощью ЗАПИСИ INF, должно быть уникальным в INF-файле и соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в статье Общие правила синтаксиса для ФАЙЛОВ INF.

Значение существующей записи типа REG_BINARY также можно изменить, перезаписав его текущее значение в разделе надстройки реестра в другом месте INF-файла. Дополнительные сведения о разделах 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

См. также раздел

AddInterface

AddReg

AddService

ClassInstall32

DDInstall

DDInstall. CoInstallers

DDInstall. HW

InterfaceInstall32