Directive AddReg INF

Une directive AddReg fait référence à un ou plusieurs _add-registry-sections* définis par inf writer qui sont utilisés pour modifier ou créer des informations de Registre.

[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) 
[install-interface-section] | 
[service-install-section] | 
[event-log-install] | 
[add-interface-section]

AddReg=add-registry-section[,add-registry-section] ...

Chaque section add-registry-section peut avoir des entrées pour effectuer les opérations suivantes :

  • Ajoutez de nouvelles clés, éventuellement avec des entrées de valeur initiales, au Registre.

  • Ajoutez de nouvelles entrées de valeur aux clés de Registre existantes.

  • Modifiez les entrées de valeur existantes de clés particulières dans le Registre.

Chaque section de registre nommée référencée par une directive AddReg a le format suivant :

[add-registry-section]
reg-root,[subkey],[value-entry-name],[flags],[value][,[value]]
reg-root,[subkey],[value-entry-name],[flags],[value][,[value]]
 ...

[[add-registry-section.security]
"security-descriptor-string"]

Une section de registre supplémentaire peut avoir n’importe quel nombre d’entrées, chacune sur une ligne distincte. Un inf peut également contenir une ou plusieurs sections facultatives add-registry-section.security, chacune spécifiant un descripteur de sécurité appliqué à toutes les valeurs de Registre décrites dans une section add-registry-section nommée.

Entrées

reg-root
Identifie la racine de l’arborescence du Registre pour les 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, dans laquelle les clés spécifiées à l’aide de cette abréviation sont relatives à la clé de Registre associée à la section INF dans laquelle cette directive AddReg apparaît, comme indiqué dans le tableau suivant.

Section INF contenant la directive AddReg Clé de Registre référencée par HKR
Section INF DDInstall Clé logicielle de l’appareil
INF DDInstall. Section HW Clé matérielle de l’appareil
Section INF [service-install-section] Clé Services
Section INF [event-log-install] La clé EventLog
Section INF [add-interface-section] Clé de Registre de l’interface de l’appareil

Notes

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

Pour plus d’informations sur les pilotes stockées sous la racine HKEY_LOCAL_MACHINE , consultez Arborescences et clés du Registre pour les périphériques et les pilotes.

Sous-clé
Cette valeur facultative, formée soit sous la forme d’un jeton %strkey% défini dans une section Strings de l’INF, soit sous la forme d’un chemin d’accès de Registre sous la racine reg donnée (key1\key2\key3...), spécifie l’un des éléments suivants :

  • Nouvelle sous-clé à ajouter au Registre à la fin du chemin du Registre donné.
  • Sous-clé existante dans laquelle les valeurs supplémentaires spécifiées dans cette entrée sont écrites (en remplaçant éventuellement la valeur d’une entrée de valeur nommée existante de la sous-clé donnée).
  • Une nouvelle sous-clé à ajouter au Registre avec son entrée de valeur initiale.

value-entry-name
Cette valeur facultative nomme une entrée de valeur existante dans la sous-clé (existante) donnée ou crée le nom d’une nouvelle entrée de valeur à ajouter dans la sous-clé spécifiée, qu’elle existe déjà ou qu’il s’agisse d’une nouvelle clé à ajouter au Registre. Cette valeur peut être exprimée en tant que «chaîne entre guillemets» ou en tant que jeton %strkey% défini dans la section Chaînes de l’INF. (Si cette valeur est omise pour une valeur de type chaîne, la valeur-entry-name est l’entrée de valeur « sans nom » par défaut pour cette clé.)

Le système d’exploitation prend en charge certains mots clés spéciaux valeur-entrée-nom définis par le système. Pour plus d’informations, consultez la fin de cette section Remarques .

flags
Cette valeur hexadécimale facultative, exprimée en tant que masque de bits ORed de valeurs d’indicateur de mot faible et de mot élevé définies par le système, définit le type de données d’une entrée de valeur et/ou contrôle l’opération de registre de complément.

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

0x00000001 (FLG_ADDREG_BINVALUETYPE)
La valeur donnée est des données « brutes ». (Cette valeur est identique à la FLG_ADDREG_TYPE_BINARY.)

0x00000002 (FLG_ADDREG_NOCLOBBER)
Empêcher une valeur donnée de remplacer la valeur d’une entrée de valeur existante.

0x00000004 (FLG_ADDREG_DELVAL)
Supprimez la sous-clé donnée du Registre ou supprimez la valeur-entry-name spécifiée de la sous-clé de Registre spécifiée.

0x00000008 (FLG_ADDREG_APPEND)
Ajoutez une valeur donnée à celle d’une entrée de valeur nommée existante. Cet indicateur n’est valide que si FLG_ADDREG_TYPE_MULTI_SZ est également défini. La valeur de chaîne spécifiée n’est pas ajoutée si elle existe déjà.

0x00000010 (FLG_ADDREG_KEYONLY)
Créez la sous-clé donnée, mais ignorez toute valeur value-entry-name et/ou valeur fournie.

0x00000020 (FLG_ADDREG_OVERWRITEONLY)
Réinitialisez la valeur fournie uniquement si la valeur-entry-name spécifiée existe déjà dans la sous-clé donnée.

0x00001000 (FLG_ADDREG_64BITKEY)
(Windows XP et versions ultérieures de Windows.) Apportez la modification spécifiée dans le Registre 64 bits. Si elle n’est pas spécifiée, la modification est apportée au Registre natif.

0x00002000 (FLG_ADDREG_KEYONLY_COMMON)
(Windows XP et versions ultérieures de Windows.) Cela est identique à FLG_ADDREG_KEYONLY, mais fonctionne également dans une section del-registry d’une directive DelReg INF.

0x00004000 (FLG_ADDREG_32BITKEY)
(Windows XP et versions ultérieures de Windows.) Apportez la modification spécifiée dans le Registre 32 bits. Si elle n’est pas spécifiée, la modification est apportée au Registre natif.

0x00000000 (FLG_ADDREG_TYPE_SZ)
L’entrée de valeur et/ou la valeur donnée est de type REG_SZ.

Notes

Cette valeur étant le type par défaut d’une entrée de valeur spécifiée, la valeur des indicateurs peut être omise de n’importe quelle ligne reg-root= dans une section de registre supplémentaire qui fonctionne sur une entrée de valeur de ce type.

0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ)
L’entrée de valeur et/ou la valeur donnée est du type de Registre REG_MULTI_SZ. Le champ de valeur qui suit peut être une liste de chaînes séparées par des virgules. Cette spécification ne nécessite pas de terminaison NULL pour une valeur de chaîne donnée.

0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ)
La valeur value-entry-name et/ou la valeur donnée est du type de Registre REG_EXPAND_SZ.

0x00010001 (FLG_ADDREG_TYPE_DWORD)
La valeur value-entry-name et/ou la valeur donnée est du type de Registre REG_DWORD.

0x00020001 (FLG_ADDREG_TYPE_NONE)
La valeur value-entry-name et/ou la valeur donnée est du type de Registre REG_NONE.

value
Cela spécifie éventuellement une nouvelle valeur pour le nom-entrée-valeur spécifié à ajouter à la clé de Registre donnée. Une telle valeur peut être une valeur « de remplacement » pour une entrée de valeur nommée existante dans une clé existante, une valeur à ajouter (valeurd’indicateur 0x00010008) à une entrée de valeur nommée existante de type REG_MULTI_SZ dans une clé existante, une nouvelle entrée de valeur à écrire dans une clé existante ou l’entrée de valeur initiale d’une nouvelle sous-clé à ajouter au Registre.

L’expression d’une telle valeur dépend du type de Registre spécifié pour l’indicateur, comme suit :

  • Une valeur de type chaîne de Registre peut être exprimée sous la forme d’une « chaîne entre guillemets » ou d’un jeton %strkey% défini dans une section Strings du fichier INF. Une telle valeur spécifiée par INF n’a pas besoin d’inclure un terminateur NULL à la fin de chaque chaîne.

  • Une valeur de type numérique du Registre peut être exprimée sous forme hexadécimale (à l’aide de la notation 0x) ou d’un nombre décimal.

security-descriptor-string
Spécifie un descripteur de sécurité à appliquer à toutes les entrées de Registre créées par la section add-registry nommée. Security-descriptor-string est une chaîne avec des jetons pour indiquer le composant de sécurité DACL (D :).

Si une section add-registry-section.securityn’est pas spécifiée, les entrées de Registre héritent des paramètres de sécurité de la clé parente.

Si une section add-registry-section.security est spécifiée, les ACE suivants doivent être inclus afin que les installations et les mises à niveau des appareils et des Service Packs système puissent se produire :

  • (A ;; GA;;; SY) - Accorde tout l’accès au système local.
  • (A ;; GA;;; BA) - Accorde tout l’accès aux administrateurs intégrés.

Ne spécifiez pas de chaînes ACE qui accordent l’accès en écriture aux utilisateurs non privilégiés.

Pour plus d’informations sur les chaînes de descripteur de sécurité, consultez Security Descriptor Definition Language (Windows). Pour plus d’informations sur le format des chaînes de descripteur de sécurité, consultez Security Descriptor Definition Language (Windows).

Pour plus d’informations sur la façon de spécifier des descripteurs de sécurité, consultez Création d’installations d’appareils sécurisées.

Remarques

Une directive AddReg peut être spécifiée sous l’une des sections indiquées dans l’instruction de syntaxe formelle ci-dessus. Cette directive peut également être spécifiée dans l’une des sections suivantes définies par l’enregistreur INF :

Chaque nom de section de registre d’ajout doit être unique au fichier INF, mais il peut être référencé par les directives AddReg dans d’autres sections du même INF. Chaque nom de section doit suivre les règles générales de définition des noms de section décrites dans Règles de syntaxe générales pour les fichiers INF.

Notes

Le bit d’ordre inférieur du mot bas dans une valeur d’indicateur fait la distinction entre les données caractère et binaires.

Pour représenter un nombre d’un type de Registre autre que l’un des types REG_XXX prédéfinis, spécifiez un nouveau numéro de type dans le mot haut de l’indicateur ORed avec FLG_ADDREG_BINVALUETYPE dans son mot bas.

Les données d’une telle valeur doivent être spécifiées au format binaire sous la forme d’une séquence d’octets séparés par des virgules. Par exemple, pour stocker 16 octets de données d’un nouveau type de données de Registre, tel que 0x38, en tant qu’entrée de valeur, l’entrée de section add-registry se présente comme suit :

HKR,,MYValue,0x00380001,1,0,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Cette technique peut être utilisée pour définir de nouveaux types de Registre pour les valeurs numériques, mais pas pour les valeurs de type REG_EXPAND_SZ, REG_MULTI_SZ, REG_NONE ou REG_SZ. Pour plus d’informations sur ces types, consultez Types de valeurs de registre.

Mots clés spéciaux value-entry-name

Des mots clés spéciaux sont définis pour être utilisés dans les entrées AddReg HKR. Le format des entrées qui utilisent ces mots clés est le suivant :

[HKR,,DeviceCharacteristics,0x10001,characteristics] 
[HKR,,DeviceType,0x10001,device-type] 
[HKR,,Security,,security-descriptor-string] 
[HKR,,UpperFilters,0x10000,service-name] 
[HKR,,LowerFilters,0x10000,service-name] 
[HKR,,Exclusive,0x10001,exclusive-device] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
[HKR,,LocationInformationOverride,,"text-string"] 
[HKR,,ResourcePickerTags,,"text-string"] 
[HKR,,ResourcePickerExceptions,,"text-string"] ,

Voici les entrées HKR AddReg qui utilisent ces mots clés spéciaux :

DeviceCharacteristics
Une entrée DeviceCharacteristics HKR AddReg spécifie les caractéristiques de l’appareil. La valeur des caractéristiques est une valeur numérique qui est le résultat de l’utilisation de OR sur une ou plusieurs valeurs de caractéristiques de fichier FILE_*, qui sont définies dans Wdm.h et Ntddk.h.

Seules les valeurs suivantes peuvent être spécifiées dans un INF :

#define FILE_REMOVABLE_MEDIA            0x00000001
#define FILE_READ_ONLY_DEVICE           0x00000002
#define FILE_FLOPPY_DISKETTE            0x00000004
#define FILE_WRITE_ONCE_MEDIA           0x00000008
#define FILE_DEVICE_SECURE_OPEN         0x00000100

Pour obtenir une description de ces valeurs, consultez IoCreateDevice.

Les valeurs de caractéristiques, qui sont spécifiées à l’aide d’une entrée DeviceCharacteristics , sont ORed avec celles spécifiées dans chaque appel à IoCreateDevice qui crée un objet d’appareil sur la pile d’appareils. L’opération OR se produit après l’ajout de tous les objets d’appareil, mais avant le démarrage de l’appareil.

La valeur des caractéristiques (y compris une valeur de zéro) remplace toutes les caractéristiques d’appareil à l’échelle de la classe qui ont été spécifiées dans le inf du programme d’installation de classe associé.

Pour plus d’informations sur les caractéristiques de l’appareil, consultez Spécification des caractéristiques de l’appareil.

DeviceType
Une entrée DeviceType HKR AddReg spécifie un type d’appareil pour l’appareil. Le type d’appareil est la valeur numérique d’une constante FILE_DEVICE_XXX définie dans Wdm.h ou Ntddk.h. La valeur d’indicateur de 0x10001 spécifie que la valeur de type d’appareil est une REG_DWORD. Pour plus d’informations, consultez Spécification de types d’appareils.

Un inf du programme d’installation de classe doit spécifier le type d’appareil qui s’applique à la totalité ou à la quasi-totalité des appareils de la classe. Par exemple, si les appareils de la classe sont de type FILE_DEVICE_CD_ROM, spécifiez un type d’appareil de 0x02. Si un inf d’appareil spécifie une valeur pour DeviceType, il remplace la valeur définie par le programme d’installation de la classe, le cas échéant. Si la classe ou l’INF d’appareil spécifie une valeur DeviceType , le gestionnaire PnP applique ce type à l’objet de périphérique physique (PDO) créé par le pilote de bus de l’appareil.

Sécurité
Une entrée Security HKR AddReg spécifie un descripteur de sécurité pour l’appareil. Security-descriptor-string est une chaîne avec des jetons pour indiquer le composant de sécurité DACL (D :).

Un inf du programme d’installation de classe peut spécifier un descripteur de sécurité pour une classe d’appareil. Un INF d’appareil peut spécifier un descripteur de sécurité pour un appareil individuel, en remplaçant la sécurité de la classe. Si la classe et/ou l’inf de l’appareil spécifient une security-descriptor-string, le gestionnaire PnP propage le descripteur à tous les objets d’appareil ( DO) d’un appareil. Cela inclut l’objet de périphérique de fonction (FDO), les objets de base de filtre facultatifs et l’AOP.

Pour plus d’informations sur le format des chaînes de descripteur de sécurité, consultez la documentation Microsoft Windows SDK.

Pour plus d’informations sur la façon de spécifier des descripteurs de sécurité, consultez Création d’installations d’appareils sécurisées.

Upperfilters
Une entrée UpperFilters HKR AddReg spécifie un pilote de filtre supérieur PnP. Cette entrée dans un DDInstall. La section HW définit un ou plusieurs pilotes de filtre supérieur spécifiques à l’appareil. Dans une section ClassInstall32 , cette entrée définit un ou plusieurs pilotes de filtre supérieur à l’échelle de la classe.

Lowerfilters
Une entrée LowerFilters HKR AddReg spécifie un pilote de filtre inférieur PnP. Cette entrée dans un DDInstall. La section HW définit un ou plusieurs pilotes de filtre inférieur spécifiques à l’appareil. Dans une section ClassInstall32 , cette entrée définit un ou plusieurs pilotes de filtre inférieur à l’échelle de la classe.

Exclusif
Une entrée AddRegHKR exclusive, si elle existe et est définie sur « 1 », spécifie que l’appareil est un appareil exclusif. Sinon, l’appareil n’est pas traité comme exclusif. Pour plus d’informations, consultez Spécification de l’accès exclusif aux objets d’appareil.

EnumPropPages32
Une entrée EnumPropPages32 HKR AddReg spécifie le nom d’un fichier de bibliothèque de liens dynamiques (DLL) qui est un fournisseur de page de propriétés spécifique à l’appareil. Il spécifie également le nom de la fonction de rappel ExtensionPropSheetPageProc telle qu’implémentée par la DLL. Pour plus d’informations sur les pages de propriétés et les fonctions, consultez le Kit de développement logiciel (SDK) Microsoft Windows pour Windows 7 et .NET Framework 4.0.

Important

Le nom de la DLL et la fonction de rappel ExtensionPropSheetPageProc doivent être placés entre guillemets ( » « ).

LocationInformationOverride
(Windows XP et versions ultérieures de Windows) Une entrée LocationInformationOverride HKR AddReg peut être utilisée pour spécifier une chaîne de texte qui décrit l’emplacement physique d’un appareil. Il remplace la chaîne LocationInformation que le pilote de bus de l’appareil fournit en réponse à une demande de IRP_MN_QUERY_DEVICE_TEXT .

ResourcePickerTags
Une entrée ResourcePickerTags HKR AddReg spécifie des balises de sélecteur de ressources pour un appareil.

ResourcePickerExceptions
Une entrée ResourcePickerExceptions HKR AddReg spécifie les conflits de ressources autorisés pour un appareil.

Exemples

Une directive AddReg a référencé la section de Miniport_EventLog_AddReg (SCSI) dans cet exemple, sous une section définie par un enregistreur INF référencée par la directive AddService dans un DDInstall. Section Services de ce INF.

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll" 
; double quotation marks delimiters in preceding entry prevent truncation 
; if line wraps
 
HKR,,TypesSupported,0x00010001,7 

Notez que vous pouvez spécifier des valeurs d’indicateur au format hexadécimal, comme indiqué dans l’exemple, ou définir des espaces réservés de chaîne, comme %FLG_ADDREG_TYPE_DWORD% dans la section [Chaînes] de chaque fichier INF.

Voir aussi

AddInterface

AddService

BitReg

ClassInstall32

DDInstall

DDInstall. CoInstallers

DDInstall. HW

DDInstall. Interfaces

DDInstall. Services

DelReg

InterfaceInstall32

Chaînes