Поделиться через


Директива 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-writer:

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

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

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

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

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

Значения битовой маски для каждого из этих флагов приведены следующим образом:

0x00000000 (FLG_BITREG_CLEARBITS)
Снимите биты, указанные в байтовой маске.

0x00000001 (FLG_BITREG_SETBITS)
Задайте биты, указанные байт-маской.

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

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

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

Замечания

Каждое имя раздела bit-registry должно быть уникальным для INF-файла , но на него можно ссылаться директивы BitReg в других разделах того же INF. Каждое имя раздела, созданного в INF-записи, должно быть уникальным в INF-файле и должно соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для INF-файлов.

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