Direttiva INF AddReg

Una direttiva AddReg fa riferimento a una o più sezioni definite _add-registry-writer INF* 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 componente aggiuntivo-sezione del Registro di sistema 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 add-registry 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 add-registry può avere un numero qualsiasi di voci, ognuna in una riga separata. Un INF può contenere anche una o più sezioni facoltative add-registry-section.security, ognuna delle quali specifica un descrittore di sicurezza applicato a tutti i valori del Registro di sistema descritti all'interno di una sezione denominata add-registry-section.

Voci

reg-root
Identifica la radice dell'albero del Registro di sistema per altri valori forniti in questa voce. Il valore può essere uno dei seguenti:

HKCR
Abbreviazione di HKEY_CLASSES_ROOT

HKCU
Abbreviazione di HKEY_CURRENT_USER

HKLM
Abbreviazione di HKEY_LOCAL_MACHINE

HKU
Abbreviazione di HKEY_USERS

HKR
Radice relativa, in cui 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] Tasto EventLog
SEZIONE INF [add-interface-section] Chiave del Registro di sistema dell'interfaccia del dispositivo

Nota

Non è possibile usare HKR in una sezione del registro dei componenti aggiuntivi a cui fa riferimento una sezione INF DefaultInstall.

Per altre informazioni sui driver archiviati 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 Stringhe dell'INF o come percorso del Registro di sistema nella radice reg specificata (key1\key2\key3...), specifica uno dei seguenti elementi:

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

value-entry-name
Questo valore facoltativo assegna un nome a una voce di valore esistente nella sottochiave specificata (esistente) oppure 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 tra virgolette" o come token %strkey% definito nella sezione Stringhe di INF. Se questo valore viene omesso per un valore di tipo stringa, value-entry-name è la voce di valore "senza nome" predefinita per questa chiave.

Il sistema operativo supporta alcune parole chiave speciali value-entry-name definite dal sistema. Per altre informazioni, vedere la fine di questa sezione Osservazioni .

flags
Questo valore esadecimale facoltativo, espresso come maschera di bit ORed di valori di parole basse definite dal sistema e flag di parole elevate, definisce il tipo di dati per una voce di valore e/o controlla l'operazione del Registro di sistema.

I valori di maschera di 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 oppure eliminare il valore-entry-name specificato dalla sottochiave del Registro di sistema specificata.

0x00000008 (FLG_ADDREG_APPEND)
Accoda un valore specificato a quello di una voce di valore denominato esistente. Questo flag è valido solo se è impostato anche 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 value-entry-name e/o valore.

0x00000020 (FLG_ADDREG_OVERWRITEONLY)
Reimpostare il valore fornito 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 registry 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 di valore e/o il valore specificato è di tipo REG_SZ.

Nota

Questo valore è il tipo predefinito per una voce di valore specificata, pertanto il valore dei flag può essere omesso da qualsiasi riga reg-root= in una sezione del Registro di sistema del componente aggiuntivo che opera su una voce di valore di questo tipo.

0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ)
La voce e/o il valore specificati sono del tipo di registro REG_MULTI_SZ. Il campo valore che segue può essere un elenco di stringhe separate da virgole. Questa specifica non richiede alcun carattere di terminazione NULL per un determinato valore stringa.

0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ)
Il valore specificato value-entry-name e/o valore è del tipo del Registro di sistema REG_EXPAND_SZ.

0x00010001 (FLG_ADDREG_TYPE_DWORD)
Il valore specificato value-entry-name e/o valore è del tipo del Registro di sistema REG_DWORD.

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

0x000B0001 (FLG_ADDREG_TYPE_QWORD)
Il valore specificato value-entry-name e/o valore è del tipo del Registro di sistema REG_QWORD.

value
In questo modo, facoltativamente, specifica un nuovo valore per il valore-entry-name specificato da aggiungere alla chiave del Registro di sistema specificata. Tale valore può essere un valore "sostitutivo" per una voce di valore denominato 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 di 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 tra virgolette" o come token strkey% %definito in una sezione Strings del file INF. Tale valore specificato da INF non deve includere un carattere di terminazione NULL alla fine di ogni stringa.

  • Un valore numerico di tipo numerico del Registro di sistema può essere espresso come un numero esadecimale (usando notazione 0x) o un 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 le seguenti ace in modo che possano verificarsi installazioni e aggiornamenti dei dispositivi e dei Service Pack di sistema:

  • (A;; GA;;; SY) − Concede tutto l'accesso al 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).For information about security descriptor strings, see 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.

Remarks

È 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 add-registry 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 definire i 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 REG_XXX predefiniti, 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 informazioni su questi tipi, vedi Tipi di valore del Registro di sistema.

Parole chiave special value-entry-name

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

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 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 DISPOSITIVO INF 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.

Security
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, 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 del 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 HKR AddReg specifica un driver di filtro superiore PnP. Questa voce in un 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 un 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.

esclusivo
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 EnumPropPages32 HKR 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 implementata dalla DLL. Per altre informazioni sulle pagine delle proprietà e sulle funzioni, vedere Microsoft Windows Software Development Kit (SDK) per Windows 7 e .NET Framework 4.0.

Importante

Sia il nome della DLL che della funzione di callback 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 risorse per un dispositivo.

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

Esempi

Una direttiva AddReg ha fatto riferimento alla sezione (SCSI) Miniport_EventLog_AddReg in questo esempio, in una sezione definita da INF-writer 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 i valori di flag in formato esadecimale, come illustrato nell'esempio, oppure è possibile definire segnaposto stringa, ad %FLG_ADDREG_TYPE_DWORD% esempio nella sezione [Stringhe] di ogni file INF.

Vedere anche

AddInterface

AddService

BitReg

ClassInstall32

DDInstall

DDInstall. CoInstaller

DDInstall. HW

DDInstall. Interfacce

DDInstall. Servizi

DelReg

InterfaceInstall32

Stringhe