Uso del co-programma di installazione di UMDF
Nota
Se il driver è destinato solo a Windows 10, non è necessario ridistribuire WDF o fornire un coinstaller nel pacchetto driver. Per puntare a Windows 10:
- In Visual Studio, nella pagina delle proprietà Impostazioni progetto di, in Driver Settings ->Target OS Versionselezionare Windows 10 o versione successiva. Equivale ad aggiungere quanto segue al file .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- Nella sezione PRODUTTORE INFspecificare 10.0 come versione del sistema operativo di destinazione, come indicato di seguito:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Potrebbe comunque essere necessario fare riferimento al coinstallatore fornito dal sistema come indicato di seguito:
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Un co-programma di installazione aggiorna la versione del framework archiviata nel computer e elabora sezioni di file INF specifiche del framework. In questo argomento vengono descritti i due coinstallatori UMDF e quando è necessario includerne uno con il pacchetto di installazione del driver o fare riferimento a un co-programma di installazione nel file INF.
Ottenere il pacchetto di co-installazione
In Windows 8.1, gli aggiornamenti del framework ridistribuibile forniti da Microsoft sono inclusi come parte di Windows Driver Kit (WDK).
Per un elenco completo del contenuto della directory del co-installatore, vedere Componenti di Installazione per Driver KMDF.
Tra gli altri componenti, la directory del co-programma di installazione contiene un update co-installer, denominato WUDFUpdate_MMmmm.dll, dove MM è il numero di versione principale e mmm è il numero di versione secondario.
Il programma di installazione condivisa dell'aggiornamento aggiorna la versione del framework UMDF presente nel computer. Ad esempio, se il computer dispone di UMDF versione 1.9 e il co-programma di installazione contiene la versione 1.11, il programma di installazione condivisa aggiorna la versione del framework del computer alla versione 1.11.
Il sistema operativo include un altro co-installatore, denominato co-installatore di configurazione o WudfCoinstaller.dll. Il co-programma di installazione della configurazione elabora le sezioni specifiche di UMDF del file INF del driver e apporta eventuali aggiornamenti necessari al Registro di sistema.
Fare riferimento ai co-installatori dal file INF
Se si scrive un driver UMDF 2.0 per Windows 8.1, il file INF deve fare riferimento al co-installer di configurazione. Poiché il co-programma di installazione della configurazione è incluso nel sistema operativo, non è necessario ridistribuirlo.
Se si scrive un driver UMDF 1.11 destinato ai sistemi operativi precedenti a Windows 8.1, è necessario assicurarsi che la versione 1.11 del framework sia installata nei computer che usano il driver. Ecco tre modi per eseguire questa operazione:
Fare riferimento al co-installer degli aggiornamenti nel file INF e includere il co-installer degli aggiornamenti nel pacchetto di installazione del driver . Quando il sistema operativo installa il driver, esegue il co-programma di installazione. Se il driver verrà distribuito tramite Windows Update, è necessario scegliere questa opzione.
Ridistribuire il pacchetto MSU pertinente (ad esempio umdf-1.11-Win-6.0.msu) insieme a un'applicazione di installazione che la chiama. È possibile trovare un esempio di tale applicazione nella sottodirectory src\general\wdkinstall dell'installazione di WDK. È possibile scegliere questa opzione se si sta scrivendo un programma di installazione fornito con il dispositivo e deve essere eseguito prima che il dispositivo possa essere usato. Se si sceglie questa opzione, il file INF deve fare riferimento al co-programma di installazione della configurazione.
Fare affidamento su Windows Update per installare la versione del framework necessaria nei computer che usano il driver. A partire dalla versione 1.11 del framework, le nuove versioni di UMDF vengono distribuite tramite Windows Update. Se si sceglie questa opzione, il file INF deve fare riferimento al co-programma di installazione della configurazione.
Nel file INF è sempre necessario fare riferimento al co-programma di installazione degli aggiornamenti o al co-programma di installazione della configurazione. Tuttavia, facendo riferimento a entrambi i co-installatori nell'INF porterà a errori di installazione.
Sezioni del file INF per il co-instalatore
Il file INF del driver deve includere una sezione INF DDInstall.CoInstallers. Se si ridistribuisce il co-programma di installazione degli aggiornamenti, la sezione DDInstall.CoInstallers deve includere sia una direttiva INF AddReg che una direttiva INF CopyFiles, come illustrato nell'esempio seguente.
[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles
La direttiva INF AddReg identifica una sezione INF che crea una voce del Registro di sistema CoInstallers32.
[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"
La direttiva INF CopyFiles identifica una sezione INF che copia il co-installatore dal dispositivo di installazione a quello di sistema.
[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll
Se si ridistribuisce un pacchetto MSU, la sezione DDInstall.CoInstallers deve specificare una direttiva AddReg che fa riferimento al co-installatore della configurazione.
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Il file INF del driver deve sempre contenere una sezione DDInstall.Wdf che il co-programma di installazione legge dopo l'installazione. Per informazioni sulle direttive che il driver può specificare in DDInstall.Wdf, vedere Specificare le direttive WDF nei file INF.
È possibile evitare di creare più file INF per più versioni del framework usando i file INX e lo strumento Stampinf. Per ulteriori informazioni sui file INX, consultare Uso dei file INX per creare file INF.