Directive INF BitReg

Attention

À partir de la version 22H2 de Windows 11, un package de pilotes utilisant cette directive n’est plus éligible à une signature du Hardware Developer Center.

Les packages de pilotes universels et les pilotes Windows ne peuvent pas utiliser cette directive.

Une directive BitReg fait référence à une ou plusieurs sections définies par l’auteur de l’INF utilisées pour définir ou effacer des bits dans une entrée de valeur de type REG_BINARY existante dans le registre. Cependant, cette directive est rarement utilisée dans les fichiers INF de périphériques/pilotes.

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

Une directive BitReg peut être spécifiée dans n’importe laquelle des sections indiquées dans la déclaration de syntaxe formelle ci-dessus. Cette directive peut également être spécifiée dans l’une des sections suivantes définies par l’auteur de l’INF :

  • Une section service-install-section ou event-log-install référencée par la directive AddService dans une section DDInstall.Services.
  • Une section add-interface-section référencée par la directive AddInterface dans une section DDInstall.Interfaces.
  • Une section install-interface référencée dans une section InterfaceInstall32.

Chaque section nommée référencée par une directive BitReg a la forme suivante :

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

Une section bit-registry-section peut avoir un nombre quelconque d’entrées, chacune sur une ligne distincte.

Entries

reg-root
Identifie la racine de l’arborescence du registre pour d’autres valeurs fournies dans cette entrée. Il peut s'agir de l'une des valeurs suivantes :

HKCR
Abréviation de HKEY_CLASSES_ROOT.

HKCU
Abréviation de HKEY_CURRENT_USER.

HKLM
Abréviation de HKEY_LOCAL_MACHINE.

HKU
Abréviation de HKEY_USERS.

HKR
Racine relative : c’est-à-dire que les clés spécifiées en utilisant cette abréviation sont relatives à la clé de registre associée à la section INF dans laquelle cette directive BitReg apparaît, comme indiqué dans le tableau suivant.

Section INF contenant la directive BitReg Clé de registre référencée par HKR
Section INF DDInstall La clé logicielle du périphérique
Section INF DDInstall.HW La clé matérielle du périphérique
Section INF DDInstall.Services La clé Services

Remarque

HKR ne peut pas être utilisé dans une section de registre de bits référencée à partir d’une section INF DefaultInstall.

Pour plus d’informations sur les informations relatives aux pilotes qui sont stockées sous la racine HKEY_LOCAL_MACHINE, veuillez consulter la section Arbres et clés de registre pour les périphériques et pilotes.

sous-clé
Cette valeur optionnelle, exprimée soit sous forme de jeton %strkey% défini dans une section Strings de l’INF, soit sous forme de chemin de registre sous la racine de registre donnée reg-root (key1\key2\key3...), spécifie la clé qui contient l’entrée de valeur à modifier.

value-entry-name
Spécifie le nom d’une entrée de valeur de type REG_BINARY existante dans la sous-clé (existante) à modifier. Elle peut être exprimée soit sous la forme d’une « chaîne entre guillemets » soit sous la forme d’un jeton %strkey% défini dans la section Strings de l’INF.

flags
Cette valeur hexadécimale optionnelle, exprimée sous forme de masque de bits ORé de valeurs d’indicateurs système définies pour le mot bas et le mot haut, spécifie s’il faut effacer ou définir les bits spécifiés dans le masque d’octets donné. Sa valeur par défaut est zéro, ce qui efface les bits dans la section 64 bits du registre.

Les valeurs de masque de bits pour chacun de ces indicateurs sont les suivantes :

0x00000000 (FLG_BITREG_CLEARBITS)
Efface les bits spécifiés par le masque d’octet.

0x00000001 (FLG_BITREG_SETBITS)
Définit les bits spécifiés par le masque d’octet.

0x00004000 (FLG_BITREG_32BITKEY) (Windows XP et versions ultérieures de Windows.)
Effectue le changement spécifié dans le registre 32 bits. Si non spécifié, le changement est effectué dans le registre natif.

byte-mask
Ce masque de taille octet, exprimé en notation hexadécimale, spécifie quels bits effacer ou définir dans la valeur actuelle du value-entry-name donné.

byte-to-modify
Cette valeur de taille octet, exprimée en décimal, spécifie l’index basé sur zéro de l’octet à modifier dans la valeur de type REG_BINARY.

Notes

Chaque nom de bit-registry-section doit être unique dans le fichier INF, mais il peut être référencé par des directives BitReg dans d’autres sections du même INF. Chaque nom de section créé par l’auteur de l’INF doit être unique dans le fichier INF et doit suivre les règles générales pour définir des noms de section. Pour plus d'informations sur ces règles, voir Règles générales de syntaxe pour les fichiers INF.

La valeur d’une entrée de valeur de type REG_BINARY existante peut également être modifiée en écrasant sa valeur actuelle dans une autre section de registre ailleurs dans le fichier INF. Pour plus d’informations sur les sections d’ajout de registre, consultez la référence de la directive AddReg.

L’utilisation d’une directive BitReg nécessite la définition d’une autre section de fichier INF. Cependant, la valeur d’une entrée de valeur de type REG_BINARY existante peut être modifiée bit par bit dans une telle section, préservant ainsi les valeurs de tous les autres bits.

Exemples

L’exemple suivant montre une section de registre de bits pour une application fictive.

[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

Voir aussi

AddInterface

AddReg

AddService

ClassInstall32

DDInstall

DDInstall.CoInstallers

DDInstall.HW

InterfaceInstall32