Direttiva INF AddReg

Una direttiva AddReg fa riferimento a una o più sezioni definite dal writer INF definite _add-registry-sections* usate per modificare o creare informazioni del Registro di sistema.

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

Ogni sezione del Registro di sistema di componenti aggiuntivi può avere voci per eseguire le operazioni seguenti:

  • Aggiungere nuove chiavi, possibilmente con voci di valore iniziale, al Registro di sistema.

  • Aggiungere nuove voci di valore alle chiavi del Registro di sistema esistenti.

  • Modificare le voci di valori esistenti di chiavi specifiche nel Registro di sistema.

Ogni sezione del registro di sistema denominata a cui fa riferimento una direttiva AddReg ha il formato seguente:

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

Una sezione del registro di sistema può avere un numero qualsiasi di voci, ognuna in una riga separata. Un INF può contenere anche una o più sezioni facoltative del componente aggiuntivo-section.security, ognuna che specifica un descrittore di sicurezza applicato a tutti i valori del Registro di sistema descritti all'interno di una sezione del Registro di sistema denominata.

Voci

reg-root
Identifica la radice dell'albero del Registro di sistema per altri valori forniti in questa voce. I possibili valori sono i seguenti:

HKCR
Abbreviazione per HKEY_CLASSES_ROOT

HKCU
Abbreviazione per HKEY_CURRENT_USER

HKLM
Abbreviazione per HKEY_LOCAL_MACHINE

HKU
Abbreviazione per HKEY_USERS

HKR
Radice relativa, in cui vengono visualizzate le chiavi specificate tramite questa abbreviazione sono relative alla chiave del Registro di sistema associata alla sezione INF in cui viene visualizzata questa direttiva AddReg , come indicato nella tabella seguente.

Sezione INF contenente la direttiva AddReg Chiave del Registro di sistema a cui fa riferimento HKR
Sezione INF DDInstall Chiave software del dispositivo
INF DDInstall. Sezione HW Chiave hardware del dispositivo
SEZIONE INF [service-install-section] Chiave di Servizi
SEZIONE INF [event-log-install] Chiave EventLog
INF [add-interface-section] sezione Chiave del Registro di sistema dell'interfaccia del dispositivo

Nota

HKR non può essere usato in una sezione del Registro di sistema a cui fa riferimento una sezione INF DefaultInstall.

Per altre informazioni sulle informazioni sul driver archiviate nella radice HKEY_LOCAL_MACHINE , vedere Alberi e chiavi del Registro di sistema per dispositivi e driver.

Sottochiave
Questo valore facoltativo, formato come token %strkey% definito in una sezione Strings dell'INF o come percorso del Registro di sistema sotto la specifica reg-root (key1\key2\key3...), specifica uno dei seguenti:

  • Nuova sottochiave da aggiungere al Registro di sistema alla fine del percorso del Registro di sistema specificato.
  • Una sottochiave esistente in cui i valori aggiuntivi specificati in questa voce vengono scritti (eventualmente sostituendo il valore di una voce denominata esistente della sottochiave specificata).
  • Sia una nuova sottochiave da aggiungere al Registro di sistema insieme alla voce del valore iniziale.

value-entry-name
Questo valore facoltativo assegna un nome a una voce di valore esistente nella sottochiave specificata (esistente) o crea il nome di una nuova voce di valore da aggiungere nella sottochiave specificata, indipendentemente dal fatto che esista già o sia una nuova chiave da aggiungere al Registro di sistema. Questo valore può essere espresso come "stringa quoted" o come token %strkey% definito nella sezione Strings di INF. Se questo valore viene omesso per un valore di tipo stringa, il nome di voce valore è la voce del valore "senza nome" predefinita per questa chiave.

Il sistema operativo supporta alcune parole chiave del nome di ingresso speciali definite dal sistema. Per altre informazioni, vedere la fine di questa sezione Osservazioni .

flags
Questo valore esadecimale facoltativo, espresso come maschera a bit ORed di valori di parola bassa e flag di parola elevata definiti dal sistema, definisce il tipo di dati per una voce di valore e/o controlla l'operazione del Registro di sistema.

I valori di maschera bit per ognuno di questi flag sono i seguenti:

0x00000001 (FLG_ADDREG_BINVALUETYPE )
Il valore specificato è dati "non elaborati". Questo valore è identico al FLG_ADDREG_TYPE_BINARY.

0x00000002 (FLG_ADDREG_NOCLOBBER )
Impedire a un determinato valore di sostituire il valore di una voce di valore esistente.

0x00000004 (FLG_ADDREG_DELVAL )
Eliminare la sottochiave specificata dal Registro di sistema o eliminare il nome di voce del valore specificato dalla sottochiave del Registro di sistema specificata.

0x00000008 (FLG_ADDREG_APPEND )
Aggiungere un valore specificato a quello di una voce denominata esistente. Questo flag è valido solo se è impostato FLG_ADDREG_TYPE_MULTI_SZ. Il valore stringa specificato non viene aggiunto se esiste già.

0x00000010 (FLG_ADDREG_KEYONLY )
Creare la sottochiave specificata, ma ignorare qualsiasi valore specificato, nome e/o valore specificato.

0x00000020 (FLG_ADDREG_OVERWRITEONLY )
Reimpostare il valore specificato solo se il valore specificato-entry-name esiste già nella sottochiave specificata.

0x00001000 (FLG_ADDREG_64BITKEY )
(Windows XP e versioni successive di Windows.) Apportare la modifica specificata nel Registro di sistema a 64 bit. Se non specificato, la modifica viene apportata al Registro di sistema nativo.

0x00002000 (FLG_ADDREG_KEYONLY_COMMON )
(Windows XP e versioni successive di Windows.) Si tratta dello stesso FLG_ADDREG_KEYONLY ma funziona anche in una sezione del Registro di sistema di una direttiva INF DelReg.

0x00004000 (FLG_ADDREG_32BITKEY )
(Windows XP e versioni successive di Windows.) Apportare la modifica specificata nel Registro di sistema a 32 bit. Se non specificato, la modifica viene apportata al Registro di sistema nativo.

0x00000000 (FLG_ADDREG_TYPE_SZ )
La voce e/o valore specificato è di tipo REG_SZ.

Nota

Questo valore è il tipo predefinito per una voce di valore specificato, quindi il valore dei flag può essere omesso da qualsiasi riga reg-root= in una sezione del registro componenti aggiuntivi che opera su una voce valore di questo tipo.

0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ )
La voce e/o valore specificato è del tipo di Registro di sistema REG_MULTI_SZ. Il campo valore che segue può essere un elenco di stringhe separate da virgole. Questa specifica non richiede alcun terminatore NULL per un valore stringa specificato.

0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ )
Il valore specificato nome e/o valore è del tipo di Registro di sistema REG_EXPAND_SZ.

0x00010001 (FLG_ADDREG_TYPE_DWORD )
Il valore specificato nome e /o valore è del tipo di Registro di sistema REG_DWORD.

0x00020001 (FLG_ADDREG_TYPE_NONE )
Il valore specificato nome e/o valore è del tipo di Registro di sistema REG_NONE.

value
Questo valore specifica facoltativamente un nuovo valore per il nome di voce di valore specificato da aggiungere alla chiave del Registro di sistema specificata. Tale valore può essere un valore "sostitutivo" per una voce denominata esistente in una chiave esistente, un valore da aggiungere (valore flag0x00010008) a una voce di valore denominata REG_MULTI_SZ tipo esistente in una chiave esistente, una nuova voce di valore da scrivere in una chiave esistente o la voce valore iniziale per una nuova sottochiave da aggiungere al Registro di sistema.

L'espressione di tale valore dipende dal tipo di Registro di sistema specificato per il flag, come indicato di seguito:

  • Un valore di tipo stringa del Registro di sistema può essere espresso come "stringa quoted" o come token %strkey% definito in una sezione Strings del file INF. Tale valore specificato da INF non deve includere un terminatore NULL alla fine di ogni stringa.

  • Un valore numerico del Registro di sistema può essere espresso come esadecimale (usando la notazione 0x) o il numero decimale.

security-descriptor-string
Specifica un descrittore di sicurezza da applicare a tutte le voci del Registro di sistema create dalla sezione add-registry-section denominata. Security-descriptor-string è una stringa con token per indicare il componente di sicurezza DACL (D:).

Se non viene specificata una sezione add-registry-section.security, le voci del Registro di sistema ereditano le impostazioni di sicurezza della chiave padre.

Se viene specificata una sezione add-registry-section.security, è necessario includere l'ACE seguente in modo che possano verificarsi installazioni e aggiornamenti di dispositivi e Service Pack di sistema:

  • (A;; GA;;; SY) — Concede l'accesso a tutto il sistema locale.
  • (A;; GA;;; BA) − Concede l'accesso a tutti gli amministratori predefiniti.

Non specificare stringhe ACE che concedono l'accesso in scrittura agli utenti senza privilegi.

Per informazioni sulle stringhe del descrittore di sicurezza, vedere Security Descriptor Definition Language (Windows). Per informazioni sul formato delle stringhe del descrittore di sicurezza, vedere Security Descriptor Definition Language (Windows).

Per altre informazioni su come specificare i descrittori di sicurezza, vedere Creazione di installazioni di dispositivi protetti.

Commenti

È possibile specificare una direttiva AddReg in una delle sezioni illustrate nell'istruzione di sintassi formale precedente. Questa direttiva può essere specificata anche in una delle sezioni INF-writer-defined seguenti:

Ogni nome della sezione del registro componenti aggiuntivi deve essere univoco per il file INF, ma può essere fatto riferimento dalle direttive AddReg in altre sezioni dello stesso INF. Ogni nome di sezione deve seguire le regole generali per la definizione dei nomi di sezione descritti in Regole di sintassi generali per i file INF.

Nota

Il bit in ordine inferiore della parola bassa in un valore di flag distingue tra i dati di tipo carattere e binari.

Per rappresentare un numero di tipo del Registro di sistema diverso da uno dei tipi predefiniti REG_XXX , specificare un nuovo numero di tipo nella parola alta del flag ORed con FLG_ADDREG_BINVALUETYPE nella parola bassa.

I dati per tale valore devono essere specificati in formato binario come sequenza di byte separati da virgole. Ad esempio, per archiviare 16 byte di dati di un nuovo tipo di dati del Registro di sistema, ad esempio 0x38, come voce di valore, la voce della sezione add-registry sarà simile alla seguente:

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

Questa tecnica può essere usata per definire nuovi tipi del Registro di sistema per i valori numerici, ma non per i valori di tipo REG_EXPAND_SZ, REG_MULTI_SZ, REG_NONE o REG_SZ. Per altre info su questi tipi, vedi Tipi di valore del Registro di sistema.

Parole chiave value-entry-name speciali

Le parole chiave speciali vengono definite per l'uso nelle voci HKR AddReg . Il formato per le voci che usano queste parole chiave è il seguente:

[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"] ,

Di seguito vengono descritte le voci HKR AddReg che usano queste parole chiave speciali:

DeviceCharacteristics
Una voce DeviceCharacteristics HKR AddReg specifica le caratteristiche per il dispositivo. Il valore delle caratteristiche è un valore numerico risultante dall'uso di OR su uno o più valori di caratteristiche del file FILE_*, definiti in Wdm.h e Ntddk.h.

In un INF è possibile specificare solo i valori seguenti:

#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

Per una descrizione di questi valori, vedere IoCreateDevice.

I valori delle caratteristiche, specificati tramite una voce DeviceCharacteristics , sono ORed con quelli specificati in ogni chiamata a IoCreateDevice che crea un oggetto dispositivo nello stack di dispositivi. L'operazione OR viene eseguita dopo l'aggiunta di tutti gli oggetti dispositivo, ma prima dell'avvio del dispositivo.

Il valore delle caratteristiche (incluso un valore pari a zero) esegue l'override di tutte le caratteristiche del dispositivo a livello di classe specificate nell'INF del programma di installazione della classe associata.

Per altre informazioni sulle caratteristiche del dispositivo, vedere Specifica delle caratteristiche del dispositivo.

DeviceType
Una voce DeviceType HKR AddReg specifica un tipo di dispositivo per il dispositivo. Il tipo di dispositivo è il valore numerico di una costante FILE_DEVICE_XXX definita in Wdm.h o Ntddk.h. Il valore del flag di 0x10001 specifica che il valore di tipo dispositivo è un REG_DWORD. Per altre informazioni, vedere Specifica dei tipi di dispositivo.

Un INF del programma di installazione di classe deve specificare il tipo di dispositivo che si applica a tutti, o quasi tutti, dei dispositivi nella classe . Ad esempio, se i dispositivi nella classe sono di tipo FILE_DEVICE_CD_ROM, specificare un tipo di dispositivo di 0x02. Se un INF del dispositivo specifica un valore per DeviceType, esegue l'override del valore impostato dal programma di installazione della classe, se presente. Se la classe o il dispositivo INF specifica un valore DeviceType , il gestore PnP applica tale tipo all'oggetto dispositivo fisico (PDO) creato dal driver del bus del dispositivo.

Sicurezza
Una voce Security HKR AddReg specifica un descrittore di sicurezza per il dispositivo. Security-descriptor-string è una stringa con token per indicare il componente di sicurezza DACL (D:).

Un INF del programma di installazione di classe può specificare un descrittore di sicurezza per una classe di dispositivo. Un INF del dispositivo può specificare un descrittore di sicurezza per un singolo dispositivo, sostituendo la sicurezza per la classe . Se la classe e/o il dispositivo INF specifica una stringa security-descriptor-string, il gestore PnP propaga il descrittore a tutti gli oggetti dispositivo ( DOs) per un dispositivo. Sono inclusi l'oggetto dispositivo funzione (FDO), gli oggetti DO di filtro facoltativi e il PDO.

Per informazioni sul formato delle stringhe del descrittore di sicurezza, vedere la documentazione di Microsoft Windows SDK.

Per altre informazioni su come specificare i descrittori di sicurezza, vedere Creazione di installazioni di dispositivi protetti.

Upperfilters
Una voce UpperFilters HKRAddReg specifica un driver di filtro superiore PnP. Questa voce in DDInstall. La sezione HW definisce uno o più driver di filtro superiore specifici del dispositivo. In una sezione ClassInstall32 questa voce definisce uno o più driver di filtro superiore a livello di classe.

Lowerfilters
Una voce LowerFilters HKR AddReg specifica un driver di filtro inferiore PnP. Questa voce in DDInstall. La sezione HW definisce uno o più driver di filtro inferiore specifici del dispositivo. In una sezione ClassInstall32 questa voce definisce uno o più driver di filtro inferiore a livello di classe.

Exclusive
Una voce Exclusive HKR AddReg , se esistente ed è impostata su "1", specifica che il dispositivo è un dispositivo esclusivo. In caso contrario, il dispositivo non viene considerato esclusivo. Per altre informazioni, vedere Specifica dell'accesso esclusivo agli oggetti dispositivo.

EnumPropPages32
Una voce EnumPropPages32HKR AddReg specifica il nome di un file DLL (Dynamic Link Library) che è un provider di pagine delle proprietà specifico del dispositivo. Specifica anche il nome della funzione di callback ExtensionPropSheetPageProc come implementato dalla DLL. Per altre informazioni sulle pagine e le funzioni delle proprietà, vedere Microsoft Windows Software Development Kit (SDK) per Windows 7 e .NET Framework 4.0.

Importante

Sia il nome della funzione di callback DLL che ExtensionPropSheetPageProc devono essere racchiusi tra virgolette (" ").

LocationInformationOverride
(Windows XP e versioni successive di Windows) È possibile usare una voce LocationInformationOverride HKR AddReg per specificare una stringa di testo che descrive la posizione fisica di un dispositivo. Esegue l'override della stringa LocationInformation fornita dal driver del bus del dispositivo in risposta a una richiesta di IRP_MN_QUERY_DEVICE_TEXT .

ResourcePickerTags
Una voce ResourcePickerTags HKR AddReg specifica i tag di selezione delle risorse per un dispositivo.

ResourcePickerExceptions
Una voce ResourcePickerExceptions HKR AddReg specifica i conflitti di risorse consentiti per un dispositivo.

Esempio

Una direttiva AddReg a cui fa riferimento la sezione Miniport_EventLog_AddReg (SCSI) in questo esempio, in una sezione definita dal writer INF a cui fa riferimento la direttiva AddService in una DDInstall. Sezione Servizi di questo 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 

Si noti che è possibile specificare valori di flag in formato esadecimale, come illustrato nell'esempio, oppure è possibile definire segnaposto stringa, ad %FLG_ADDREG_TYPE_DWORD% esempio nella sezione [Strings] di ogni file INF.

Vedi anche

AddInterface

AddService

BitReg

ClassInstall32

DDInstall

DDInstall. CoInstaller

DDInstall. HW

DDInstall. Interfacce

DDInstall. Servizi

DelReg

InterfaceInstall32

Stringhe