Директива 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:
- Раздел service-install-section или event-log-install , на который ссылается директива AddService в разделе DDInstall.Services.
- Раздел надстройки, на который ссылается директива AddInterface в DDInstall. Раздел интерфейсов.
- Раздел install-interface-, на который ссылается раздел InterfaceInstall32
Каждый именованный раздел, на который ссылается директива 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