Partilhar via


Diretiva INF BitReg

Cuidado

A partir do Windows 11 versão 22H2, um pacote de driver que usa essa diretiva não está mais qualificado para uma assinatura da Central do Desenvolvedor para Hardware.

Os pacotes de driver Universais e os Drivers do Windows não podem usar essa diretiva.

Uma diretiva BitReg faz referência a uma ou mais seções definidas pelo gravador INF usadas para definir ou limpar bits dentro de uma entrada de valor de tipo REG_BINARY existente no registro. No entanto, essa diretiva raramente é usada em arquivos INF de dispositivo/driver.

[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]...

Uma diretiva BitReg pode ser especificada em qualquer uma das seções mostradas na instrução de sintaxe formal acima. Essa diretiva também pode ser especificada em qualquer uma das seguintes seções definidas pelo gravador do INF:

  • Uma service-install-section ou uma seção event-log-install referenciada pela diretiva AddService em uma seção DDInstall.Services.
  • Uma add-interface-section referenciada pela diretiva AddInterface em uma seção DDInstall.Interfaces.
  • Uma install-interface-section referenciada em uma seção InterfaceInstall32

Cada seção nomeada referenciada por uma diretiva BitReg tem o seguinte formato:

[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
...

Uma bit-registry-section pode ter qualquer número de entradas, cada uma em uma linha separada.

Entradas

reg-root
Identifica a raiz da árvore do Registro para outros valores fornecidos nesta entrada. O valor pode ser um dos seguintes:

HKCR
Abreviatura de HKEY_CLASSES_ROOT.

HKCU
Abreviatura de HKEY_CURRENT_USER.

HKLM
Abreviatura de HKEY_LOCAL_MACHINE.

HKU
Abreviatura de HKEY_USERS.

HKR
Raiz relativa – ou seja, as chaves especificadas usando essa abreviação são relativas à chave do registro associada à seção INF na qual essa diretiva BitReg aparece, conforme indicado na tabela a seguir.

Seção do INF , Como conter a diretiva BitReg Chave do registro referenciada por HKR
Seção INF DDInstall A chave de software do dispositivo
Seção DDInstall.HW do INF A chave de hardware do dispositivo
Seção DDInstall.Services do INF A chave Services

Observação

O HKR não pode ser usado em uma seção bit-registry-section referenciada de uma seção DefaultInstall.

Para mais informações sobre as informações de driver armazenadas na raiz HKEY_LOCAL_MACHINE, consulte Árvores e chaves do registro para dispositivos e drivers.

subkey
Esse valor opcional, expresso como um token %strkey% definido em uma seção Strings do INF ou como um caminho do registro em reg-root (key1\key2\key3...) especifica a chave que contém a entrada de valor a ser modificada.

value-entry-name
Especifica o nome de uma entrada de valor do tipo REG_BINARY na subchave (existente) a ser modificada. Pode ser expressa como "quoted string" ou como um token %strkey% definido na seção Strings do INF.

sinalizadores
Esse valor hexadecimal opcional, expresso como uma máscara de bits ORed de valores de sinalizador de palavra baixa e alta definidos pelo sistema, especifica se os bits especificados na máscara de byte fornecida devem ser limpos ou definidos. Seu valor padrão é zero, o que limpa os bits na seção de 64 bits do registro.

Os valores de bitmask para cada um desses sinalizadores são os seguintes:

0x00000000 (FLG_BITREG_CLEARBITS)
Limpe os bits especificados por byte-mask.

0x00000001 (FLG_BITREG_SETBITS)
Defina os bits especificados por byte-mask.

0x00004000 (FLG_BITREG_32BITKEY) (Windows XP e versões posteriores do Windows.)
Faça a alteração especificada no registro de 32 bits. Se não for especificado, a alteração será feita no registro nativo.

byte-mask
Essa máscara de tamanho de byte, expressa em notação hexadecimal, especifica quais bits limpar ou definir no valor atual de um value-entry-name.

byte-to-modify
Esse valor de tamanho de byte, expresso em valores decimais, especifica o índice baseado em zero do byte dentro do valor REG_BINARY-type a ser modificado.

Comentários

Cada nome de bit-registry-section deve ser exclusivo para o arquivo INF, mas pode ser referenciado por diretivas BitReg em outras seções do mesmo INF. Cada nome de seção INF-writer-created deve ser exclusivo dentro do arquivo INF e deve seguir as regras gerais para definir nomes de seção. Para mais informações sobre essas regras, consulte Regras gerais de sintaxe para arquivos INF.

O valor de uma entrada de valor de REG_BINARY-type também pode ser modificado substituindo seu valor atual em uma seção add-registry em outro lugar no arquivo INF. Para mais informações sobre seções add-registry, consulte a referência da diretiva AddReg.

O uso de uma diretiva BitReg requer a definição de outra seção do arquivo INF. No entanto, o valor de uma entrada de valor REG_BINARY-type pode ser modificado bit a bit em tal seção, preservando assim os valores de todos os bits restantes.

Exemplos

O exemplo a seguir mostra uma seção de registro de bits de um aplicativo fictício.

[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

Confira também

AddInterface

AddReg

AddService

ClassInstall32

DDInstall

DDInstall.CoInstallers

DDInstall.HW

InterfaceInstall32