Sezione INF ClassInstall32
Attenzione
Se si sta creando un pacchetto universale o driver di Windows, questa sezione non è valida. Vedi Uso di un file INF universale e Introduzione allo sviluppo di driver windows.
Una sezione ClassInstall32 installa una nuova classe di installazione del dispositivo per i dispositivi nella nuova classe.
[ClassInstall32] |
[ClassInstall32.nt] |
[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)
AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...] (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...] (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
whse.
AddReg=add-registry-section[,add-registry-section]...
Fa riferimento a una o più sezioni denominate che contengono voci di valore specifiche della classe da scrivere nel Registro di sistema. In genere, viene usato per assegnare alla nuova classe di installazione del dispositivo almeno un nome descrittivo che altri componenti possono recuperare successivamente dal Registro di sistema e usare per aprire i dispositivi installati di questa nuova classe di dispositivo o per "installare" qualsiasi provider di pagine delle proprietà per questa classe di installazione del dispositivo e così via.
Una specifica HKR in qualsiasi sezione del Registro di sistema specifica la chiave del Registro di sistema che contiene le impostazioni per tale classe. Per altre informazioni, vedere la sezione Osservazioni seguente.
Per altre informazioni, vedere Direttiva INF AddReg.
AddProperty=add-property-section[,add-property-section]...
(Windows Vista e versioni successive di Windows) Fa riferimento a una o più sezioni di file INF che modificano le proprietà del dispositivo impostate per una classe di installazione del dispositivo. È consigliabile usare una direttiva INF AddProperty solo per impostare una proprietà della classe di installazione del dispositivo nuova a Windows Vista o versioni successive dei sistemi operativi Windows.
Per le proprietà della classe di dispositivo introdotte in precedenza in Windows Server 2003, Windows XP o Windows 2000 e con valori di voce del Registro di sistema corrispondenti, è necessario continuare a usare le direttive INF AddReg per impostare la proprietà della classe di installazione del dispositivo. Queste linee guida si applicano alle proprietà definite dal sistema e alle proprietà personalizzate.
Per altre informazioni su come usare la direttiva AddProperty , vedere Uso della direttiva INF AddProperty e della direttiva INF DelProperty.
Copyfiles=@filename | file-list-section[,file-list-section]...
Specifica un file denominato da copiare dal supporto di origine alla destinazione o fa riferimento a una o più sezioni denominate in cui vengono specificati file rilevanti per la classe nel supporto di origine per il trasferimento alla destinazione. La voce DefaultDestDir nella sezione DestinationDirs di INF specifica la directory di destinazione per qualsiasi file singolo specifico della classe da copiare.
Per altre informazioni, vedere Direttiva INF CopyFiles.
Nota
I file INF forniti dal sistema per le classi di installazione dei dispositivi non usano questa direttiva in questa sezione.
DelReg=del-registry-section[,del-registry-section]...
Fa riferimento a una o più sezioni denominate in cui vengono specificate voci di valore o chiavi da rimuovere dal Registro di sistema durante l'installazione del programma di installazione della classe.
Tuttavia, se esiste già un particolare {SetupClassGUID} come classe installata, il codice di installazione del sistema ignora successivamente la sezione ClassInstall32 di qualsiasi INF che specifica lo stesso valore GUID nella relativa sezione Version. Di conseguenza, un INF non può sostituire un programma di installazione della classe esistente o modificarne il comportamento da una sezione ClassInstall32 .
Per altre informazioni, vedere Direttiva INF DelReg.
DelProperty=del-property-section[,del-property-section]...
(Windows Vista e versioni successive di Windows) Fa riferimento a una o più sezioni di file INF che eliminano le proprietà del dispositivo impostate per una classe di installazione del dispositivo. È consigliabile usare una direttiva INF DelProperty solo per eliminare una proprietà della classe di installazione del dispositivo nuova a Windows Vista o versioni successive dei sistemi operativi Windows.
Per le proprietà della classe di dispositivo introdotte in precedenza in Windows Server 2003, Windows XP o Windows 2000 e con valori di voce del Registro di sistema corrispondenti, è consigliabile continuare a usare le direttive INF DelReg per eliminare la proprietà della classe di installazione del dispositivo. Queste linee guida si applicano alle proprietà definite dal sistema e alle proprietà personalizzate.
Per altre informazioni sull'uso della direttiva DelProperty , vedere Uso della direttiva INF AddProperty e della direttiva INF DelProperty.
Delfiles=file-list-section[,file-list-section]...
Fa riferimento a una o più sezioni denominate in cui i file pertinenti per la classe installati in precedenza nella destinazione vengono specificati per l'eliminazione.
Per altre informazioni, vedere Direttiva INF DelFiles.
Renfiles=file-list-section[,file-list-section]...
Fa riferimento a una o più sezioni denominate in cui sono elencati i file rilevanti per la classe da rinominare nella destinazione.
Per altre informazioni, vedere Direttiva INF RenFiles.
BitReg=bit-registry-section[,bit-registry-section]...
Valido in questa sezione, ma quasi mai usato.
Per altre informazioni, vedere Direttiva INF BitReg.
UpdateInis=update-ini-section[,update-ini-section]...
Valido in questa sezione, ma quasi mai usato.
Per altre informazioni, vedere Direttiva INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Valido in questa sezione, ma quasi mai usato.
Per altre informazioni, vedere Direttiva INF UpdateIniFields.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Valido in questa sezione, ma quasi mai usato.
Per altre informazioni, vedere Direttiva INF UpdateIniFields.
Osservazioni:
È consigliabile includere una sezione ClassInstall32 in un file INF del dispositivo solo per installare una nuova classe di installazione del dispositivo personalizzata. I file INF per i dispositivi in una classe installata, indipendentemente dal fatto che una classe di installazione del dispositivo fornita dal sistema o una classe personalizzata, non includano una sezione ClassInstall32 . Poiché il sistema elabora una sezione ClassInstall32 solo se una classe non è già installata, non è possibile usare una sezione ClassInstall32 per reinstallare o modificare le impostazioni per una classe già installata. In particolare, non è possibile usare una sezione ClassInstall32 per aggiungere un co-programma di installazione di classi o un driver di filtro classi per una classe già installata. Per informazioni su come installare co-programmi di installazione e driver di filtro, vedere Scrittura di un co-programma di installazione e Installazione di un driver di filtro.
In genere, una sezione ClassInstall32 include una o più direttive AddReg per aggiungere voci in una sottochiave SetupClassGUID fornita dal sistema nel Registro di sistema. Queste voci possono includere un "nome descrittivo" specifico della classe, il percorso del programma di installazione della classe, l'icona della classe, il provider di pagine delle proprietà e così via.
Ad eccezione di AddReg e CopyFiles, le altre direttive illustrate di seguito vengono usate raramente in una sezione ClassInstall32.
Per supportare una distribuzione multipiattaforma dei file driver, creare sezioni ClassInstall32 specifiche della piattaforma. Ad esempio, tutte le funzioni SetupAPI di sistema che elaborano una sezione ClassInstall32 cercheranno prima una sezione ClassInstall32.ntx86 in una piattaforma x86 ed esaminano solo una sezione ClassInstall32 non dichiarata se non riescono a trovare una sezione ClassInstall32.ntx86. Per altre informazioni su come usare le estensioni .nt, .ntx86, .ntia64, .ntamd64, ntarm e ntarm64 definite dal sistema, vedere Creazione di file INF per più piattaforme e sistemi operativi.
Nota
Il nome della sezione ClassInstall32 viene usato anche per le installazioni su piattaforme a 64 bit.
A partire da Windows 2000, ogni dispositivo installato è associato a una classe di installazione del dispositivo. Se l'INF per un dispositivo da installare non è associato a un nuovo programma di installazione della classe di dispositivo o se la specifica ClassGUID= nella sezione Version non corrisponde a un GUID della classe di installazione definita dal sistema, tale dispositivo è associato alla classe di installazione del dispositivo con nome "Unknown".
L'INF per qualsiasi programma di installazione della classe di dispositivo ha in genere una direttiva AddReg nella sezione ClassInstall32 per definire almeno una sezione denominata che crea un nome descrittivo per il relativo tipo di dispositivo. Il codice di installazione crea automaticamente una chiave SetupClassGUID nella posizione appropriata nel Registro di sistema dal valore fornito per la voce ClassGUID= nella sezione Versione di INF quando viene installato il primo dispositivo della classe di installazione (nuova).
INF può usare le sezioni del Registro di sistema aggiunte a cui fa riferimento nella sezione ClassInstall32 per specificare un provider di pagine delle proprietà e per esercitare il controllo sulla modalità di gestione della relativa classe di dispositivi nell'interfaccia utente.
Una sezione del Registro di sistema specifica della classe ha il formato generale seguente:
[SetupClassAddReg]
HKR,,,,%DevClassName% ; device-class friendly name
[HKR,,Installer32,,"class-installer.dll,class-entry-point"]
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number"
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]
Il sistema usa l'icona specificata per rappresentare il programma di installazione all'utente.
- Se il valore icona è positivo, rappresenta un identificatore di risorsa per una risorsa. La risorsa viene estratta dalla DLL del programma di installazione della classe, se viene specificata la chiave Installer32 o dalla DLL della pagina delle proprietà, se viene specificata la chiave EnumPropPages32. Il valore "0" rappresenta la prima icona nella DLL. Il valore "1" è riservato.
- Se il valore Icon è negativo, il valore assoluto è l'identificatore della risorsa dell'icona in SetupApi.DLL.
L'impostazione delle voci predefinite SilentInstall, NoDisplayClass e NoInstallClass Boolean in una chiave del Registro di sistema specifica della classe ha gli effetti seguenti:
L'impostazione di SilentInstall indirizza i programmi di installazione per l'invio di messaggi popup all'utente che richiedono una risposta durante l'installazione dei dispositivi di questa classe, indipendentemente dal fatto che siano specificati nelle sezioni DDInstall del file INF del programma di installazione della classe o in file INF separati per i dispositivi installati successivamente che si dichiarano di questa classe impostando la stessa specifica ClassGuid={ClassGUID} nelle rispettive sezioni Version. Ad esempio, i programmi di installazione della classe di sistema dei dispositivi CD-ROM e del disco e il programma di installazione della classe di porta parallela di sistema imposta SilentInstall nelle rispettive chiavi del Registro di sistema.
Se un programma di installazione specifico della classe richiede che il computer venga riavviato per qualsiasi dispositivo installato, la sezione del Registro di sistema del componente aggiuntivo specifica della classe nel relativo INF non può avere questa voce di valore.
L'impostazione di NoDisplayClass elimina la visualizzazione visibile dall'utente di tutti i dispositivi di questa classe Gestione dispositivi. Ad esempio, i programmi di installazione della classe di sistema per le stampanti e per i driver di rete (inclusi client, servizi e protocolli) impostano NoDisplayClass nelle rispettive chiavi del Registro di sistema.
L'impostazione di NoInstallClass indica che nessun dispositivo di questo tipo richiederà mai l'installazione manuale da parte di un utente finale. Ad esempio, i programmi di installazione della classe di sistema per dispositivi Plug and Play (PnP) esclusivi impostano NoInstallClass nelle rispettive chiavi del Registro di sistema.
Una sezione ClassInstall32 può contenere direttive AddReg per impostare DeviceType, DeviceCharacteristics e Security per i dispositivi della relativa classe di installazione. Per altre informazioni, vedere la direttiva INF AddReg.
Esempi
Questo esempio mostra la sezione ClassInstall32 , insieme alla sezione denominata a cui fa riferimento la direttiva AddReg.
[ClassInstall32]
AddReg=example_class_addreg
[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"
Al contrario, questo esempio configura un provider di pagine delle proprietà specifico della classe. Questo INF imposta anche le voci di valore SilentInstall e NoInstallClass nella chiave di classe su TRUE (1).
[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"