Sezione INF DDInstall.CoInstallers
Attenzione
A partire da Windows 11 versione 22H2, un pacchetto driver che usa questa sezione non è più idoneo per una firma da Hardware Developer Center.
I pacchetti driver universali e i driver di Windows non possono usare questa sezione.
Questa sezione facoltativa registra uno o più co-installer specifici del dispositivo forniti nel supporto di distribuzione per integrare le operazioni dei programmi di installazione della classe di dispositivo esistenti.
[install-section-name.CoInstallers] |
[install-section-name.nt.CoInstallers] |
[install-section-name.ntx86.CoInstallers] |
[install-section-name.ntia64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.CoInstallers] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.CoInstallers] (Windows 10 version 1709 and later versions of Windows)
AddReg=add-registry-section[,add-registry-section]...
CopyFiles=@filename | file-list-section[,file-list-section]...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[DelFiles=file-list-section[,file-list-section]...]
[RenFiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-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 uno o più componenti aggiuntivi definiti dal writer INF che archivia le informazioni del Registro di sistema relative ai co-installer forniti.
Un HKR specificato in tale sezione del Registro di sistema indica il percorso del Registro di sistema "chiave software" del dispositivo in fase di installazione. Pertanto, per un co-programma di installazione specifico del dispositivo, scrive (o modifica) una voce di valore CoInstallers32 in questa chiave "software" accessibile dall'utente per dispositivo/driver.
Per un co-programma di installazione specifico della classe, registra i nuovi co-installer modificando il contenuto del file appropriato . Sottochiavi CoDeviceInstallers\SetupClassGUID . Il percorso delle sottochiavi setupClassGUID appropriate del Registro di sistema deve essere specificato in modo esplicito nelle sezioni del Registro di sistema di riferimento.
Per altre informazioni, vedere Direttiva INF AddReg.
CopyFiles=@filename | file-list-section*[,file-list-section]...
Trasferisce i file del co-programma di installazione di origine alla destinazione nel computer di destinazione, in genere facendo riferimento a uno o più file-list-sectiondefiniti da INF in un'altra posizione nel file INF. Tale sezione file-list specifica i file di co-installazione da copiare dal supporto di origine alla directory di destinazione nella destinazione.
Tuttavia, i file INF di sistema che installano co-installer non usano mai questa direttiva in una DDInstall. Sezione CoInstallers .
Per altre informazioni, vedere Direttiva INF CopyFiles.
Include=filename.inf[,filename2.inf]...
Specifica uno o più file INF forniti dal sistema che contengono sezioni necessarie per installare i co-installer per questo dispositivo o classe di installazione del dispositivo. Un file INF con questa voce deve in genere specificare Esigenze.
Needs=inf-section-name[,inf-section-name]...
Specifica le sezioni specifiche che devono essere elaborate durante l'installazione di questo dispositivo. In genere, una sezione denominata è DDInstall. Sezione CoInstallers all'interno di un file INF fornito dal sistema elencato in una voce Includi. Tuttavia, può essere qualsiasi sezione a cui viene fatto riferimento all'interno di tale DDInstall. Sezione CoInstallers dell'INF incluso.
DelFiles=file-list-section[,file-list-section]...
Fa riferimento a una sezione dell'elenco di file che specifica i file da rimuovere dalla destinazione. Questa direttiva viene usata raramente.
Per altre informazioni, vedere Direttiva INF DelFiles.
RenFiles=file-list-section[,file-list-section]...
Fa riferimento a una sezione dell'elenco di file che specifica i file nella destinazione da rinominare prima che i file di origine del programma di installazione condivisa vengano copiati nella destinazione. Questa direttiva viene usata raramente.
Per altre informazioni, vedere Direttiva INF RenFiles.
DelReg=del-registry-section[,del-registry-section]...
Fa riferimento a uno o più s di inf-writer-define delete-registry-section. Tale sezione specifica informazioni sul Registro di sistema non aggiornate sui co-installer per un'installazione precedente degli stessi dispositivi che devono essere rimossi dal Registro di sistema. Un HKR specificato in tale sezione delete-registry definisce la stessa sottochiave del Registro di sistema come già descritto per la voce AddReg . Questa direttiva viene usata raramente in una DDInstall. Sezione CoInstallers .
Per altre informazioni, vedere Direttiva INF DelReg.
BitReg=bit-registry-section[,bit-registry-section]...
Questa voce è valida in questa sezione, ma quasi mai usata. Un HKR specificato in una sezione del Registro di sistema bit di questo tipo definisce la stessa sottochiave del Registro di sistema come già descritto per la voce AddReg .
Per altre informazioni, vedere Direttiva INF BitReg.
UpdateInis=update-ini-section[,update-ini-section]...
Questa voce è valida in questa sezione, ma quasi mai usata.
Per altre informazioni, vedere Direttiva INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Questa voce è valida in questa sezione, ma quasi mai usata.
Per altre informazioni, vedere Direttiva INF UpdateIniFields.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Questa voce è valida in questa sezione, ma quasi mai usata.
Per altre informazioni, vedere Direttiva INF Ini2Reg.
Osservazioni:
È necessario fare riferimento alla sezione DDInstall specificata in una voce specifica di dispositivo/modelli nella sezione Modelli per produttore del file INF.
Se un INF include un DDInstall. La sezione Coinstallers deve essere presente una per ogni sezione DDInstall decorata dalla piattaforma e non dichiarata. Ad esempio, se un INF contiene una sezione [install-section-name.ntx86] e una sezione [install-section-name] e registra co-installer specifici del dispositivo, in INF deve includere entrambi [install-section-name.ntx86. Sezione Coinstallers] e [install-section-name. Sezione Coinstallers]. 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.
Ogni direttiva in un DDInstall.La sezione CoInstallers può fare riferimento a più di un nome di sezione definito da INF-writer. Tuttavia, ogni sezione denominata aggiuntiva deve essere separata dalla successiva con una virgola (,).
Ogni nome di sezione creato dalla direttiva deve essere univoco all'interno del file INF e deve seguire le regole generali per definire i nomi di sezione. Per altre informazioni su queste regole, vedere Regole di sintassi generali per i file INF.
Un co-programma di installazione è una DLL Win32 che in genere scrive informazioni di configurazione aggiuntive nel Registro di sistema o esegue altre attività di installazione che richiedono informazioni specifiche del sistema generate dinamicamente che non sono disponibili quando viene creato un INF. Un co-programma di installazione specifico del dispositivo integra le operazioni di installazione del programma di installazione del dispositivo del sistema operativo o del programma di installazione della classe appropriato quando il dispositivo è installato.
Per altre informazioni su come scrivere e usare i co-installer, vedere Scrittura di un co-programma di installazione.
Installazione delle immagini del programma di installazione condivisa
Tutti i file del programma di installazione condivisa devono essere copiati nella directory %SystemRoot%\system32 . Come qualsiasi operazione COPYFiles INF, la destinazione viene controllata in modo esplicito per una sezione file-list-section denominata nella sezione DestinationDirs del file INF in base al valore dirid 11 o specificando questo valore dirid per la voce DefaultDestDir.
Registrazione di co-installer specifici del dispositivo
La registrazione di uno o più co-installer specifici del dispositivo richiede l'aggiunta di una voce di valore tipizzata REG_MULTI_SZ al Registro di sistema. Specificare una sezione add-registry a cui fa riferimento la direttiva AddReg usando il formato generale seguente:
[DDInstall.CoInstallers_DeviceAddReg]
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
[,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
[,DevSpecific2EntryPoint]"...]
La voce HKR è elencata come una singola riga all'interno del file INF e ogni DLL del co-programma di installazione specifica del dispositivo specificata deve avere un nome univoco. Dopo aver registrato i co-installer elencati, il programma di installazione del dispositivo del sistema li chiama in ogni passaggio successivo del processo di installazione per tale dispositivo.
Se devSpecificEntryPoint facoltativo viene omesso, il nome di routine CoDeviceInstall predefinito viene usato come punto di ingresso della DLL del programma di installazione condivisa.
Per altre informazioni, vedere Registrazione di un co-programma di installazione specifico del dispositivo.
Registrazione di co-installer di classe dispositivo
Per aggiungere una voce di valore (e una sottochiave della classe di installazione, se non esiste già) per uno o più co-installer della classe dispositivo nel Registro di sistema, una sezione add-registry a cui fa riferimento la direttiva AddReg ha il formato generale seguente:
[DDInstall.CoInstallers_ClassAddReg]
HKLM,System\CurrentControlSet\Control
\CoDeviceInstallers,{SetupClassGUID},
0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]"
...
Ogni voce di tale sezione del Registro di sistema dei componenti aggiuntivi è elencata come una singola riga all'interno del file INF e ogni DLL del co-programma di installazione della classe fornita deve avere un nome univoco. Se i co-installer forniti devono essere usati per più di una classe di installazione del dispositivo, questa sezione del Registro di sistema dei componenti aggiuntivi può avere più di una voce, ognuna con il valore SetupClassGUID appropriato.
Un co-programma di installazione di classe dispositivo supplementare non deve sostituire i co-installer già registrati per un programma di installazione di classe esistente. Pertanto, il co-programma di installazione della classe deve avere un nome univoco e il valore di tipo REG_MULTI_SZ fornito deve essere aggiunto (come indicato dall'8 nel valore dei flag 0x0010008) alle voci del co-programma di installazione specifiche della classe, se presenti, già presenti nella sottochiave {SetupClassGUID}.
Nota
Le funzioni SetupAPI non aggiungono mai un devClssCoInstall duplicato.dll a una voce di valore se un co-programma di installazione con lo stesso nome è già registrato.
L'INF per un co-programma di installazione supplementare della classe di dispositivi può essere attivato da un'installazione con il pulsante destro del mouse o tramite una chiamata a SetupInstallFromInfSection eseguita da un'applicazione di installazione del dispositivo.
Esempi
In questo esempio viene illustrato DDInstall.Sezione CoInstallers per schede di rete seriali IrDA. L'INF fornito dal sistema per queste schede di interfaccia di rete IrDA (seriale) fornisce un co-programma di installazione al programma di installazione della classe IrDA di sistema.
; DDInstall section
[PNP.NT]
AddReg=ISIR.reg, Generic.reg, Serial.reg
PromptForPort=0 ; This is handled by IRCLASS.DLL
LowerFilters=SERIAL ; This is handled by IRCLASS.DLL
BusType=14
Characteristics=0x4 ; NCF_PHYSICAL
; ... PNP.NT.Services section omitted here
[PNP.NT.CoInstallers]
AddReg = ISIR.CoInstallers.reg
; ...
[IRSIR.reg]
HKR, Ndi, HelpText, 0, %IRSIR.Help%
HKR, Ndi, Service, 0, "IRSIR"
HKR, Ndi\Interfaces, DefUpper, 0, "ndisirda"
HKR, Ndi\Interfaces, DefLower, 0, "nolower"
HKR, Ndi\Interfaces, UpperRange, 0, "ndisirda"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
[Generic.reg]
HKR,,InfraredTransceiverType,0,"0"
[Serial.reg]
HKR,,SerialBased,0, "0"
[ISIR.CoInstallers.reg]
HKR,,CoInstallers32,0x00010000,"IRCLASS.dll,IrSIRClassCoInstaller"
; ... Services and Event Log registry sections omitted here
[Strings]
; ...
IRSIR.Help = "An IrDA serial infrared device is a built-in COM port or
external transceiver which transmits infrared pulses. This NDIS
miniport driver installs as a network adapter and binds to the FastIR
protocol."
PNP precedente.NT. La sezione CoInstallers fa riferimento solo a una sezione del Registro di sistema dei componenti aggiuntivi specifica del programma di installazione condivisa.
Non dispone di alcuna direttiva CopyFiles perché questo INF fornito dal sistema installa un set di dispositivi di rete IrDA. Come tutti i file INF di sistema, questo file INF usa la voce LayoutFile nella relativa sezione Version per trasferire il file co-installer nella destinazione.
Qualsiasi DDInstall. La sezione CoInstallers in un INF fornito da un IHV o OEM richiede una direttiva CopyFiles e anche le sezioni SourceDisksNames e SourceDisksFiles.