Condividi tramite


Specifica del co-programma di installazione kmdf in un file INF

Nota

Se il driver è destinato solo a Windows 10, non è necessario ridistribuire WDF o fornire un coinstaller nel pacchetto driver. Per specificare Come destinazione Windows 10:

  1. In Visual Studio, nella pagina delle proprietà Impostazioni progetto, in Impostazioni driver ->Versione del sistema operativo di destinazione selezionare Windows 10 o versione successiva. Equivale ad aggiungere quanto segue al file .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
  1. Nella sezione Produttore INF specificare 10.0 come versione del sistema operativo di destinazione, come indicato di seguito:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0

Se si include un programma di installazione condivisa nel pacchetto driver, leggere questo argomento per informazioni sulle sezioni che è necessario specificare nel file INF del driver. Queste informazioni non si applicano se si fornisce un'applicazione di installazione personalizzata che chiama i ridistribuibili msu forniti da Microsoft.

Sezioni del file INF per il co-programma di installazione

Il file INF del driver deve contenere un inF DDInstall. Sezione CoInstallers che installa il co-programma di installazione. Ad esempio, questa sezione potrebbe essere denominata MyDevice.ntx86.CoInstallers. Per altre informazioni sulla specifica di un co-programma di installazione in un file INF, vedere la sezione INF DDInstall.CoInstallers.

Inoltre, il file INF del driver deve contenere un INF DDInstall. Sezione Wdf che il co-programma di installazione legge dopo l'installazione. Ad esempio, questa sezione potrebbe essere denominata MyDevice.ntx86.Wdf. Dopo aver installato il programma di installazione condivisa del framework, questa sezione viene letta durante l'installazione del driver.

INF DDInstall. La sezione Wdf contiene la direttiva seguente:

  • KmdfService = DriverService,Wdf-install-section

DriverService rappresenta il nome che il sistema operativo assegnerà al servizio in modalità kernel del driver e Wdf-install-section rappresenta il nome di una sezione INF che il co-programma di installazione legge per ottenere informazioni sul driver.

La sezione INF identificata da Wdf-install-section deve contenere la direttiva seguente:

  • KmdfLibraryVersion = WdfLibraryVersion

WdfLibraryVersion rappresenta un numero di versione della libreria, ad esempio "1.0" o "1.11".

Ad esempio, il codice INF DDInstall seguente. La sezione Wdf specifica Echo_wdfsect come nome Wdf-install-section .

[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0

È possibile evitare di creare più file INF per più versioni del framework usando i file INX e lo strumento Stampinf . Per altre informazioni sui file INX, vedere Uso di file INX per la creazione di file INF.

DDInstall di esempio INF. CoInstallers e DDInstall. Sezioni Wdf

Nell'esempio di codice seguente viene illustrato come creare INF DDInstall. Sezione CoInstallers e INF DDInstall. Sezione Wdf di un file INF per un driver PnP. L'esempio mostra come creare un file INF denominato MyDevice.inf ed è basato sul file Echo.inf del driver di esempio ECHO. Il driver di esempio Echo si trova nella directory degli esempi di WDK.

Per creare MyDevice.inf, è necessario modificare tutte le sottostringhe ECHO_Device in Echo.inf in un nome appropriato per il prodotto. L'esempio di codice seguente usa MyDevice.

È consigliabile provare a trovare la corrispondenza con il layout della sezione usato dall'esempio Echo.inf . In altre parole, se possibile, mantenere le sezioni correlate al programma di installazione condivisa insieme per individuare più facilmente gli errori taglia e incolla.

Prima di aver modificato echo.inf, le sezioni che installano il co-programma di installazione sono le seguenti:

=============== Top of Echo.inf ====================
....
....
[DestinationDirs]
DefaultDestDir = 12
ECHO_Device_CoInstaller_CopyFiles = 11
....
....
;
;--- ECHO_Device Co-installer installation ------
;
[ECHO_Device.NT.CoInstallers]
AddReg=ECHO_Device_CoInstaller_AddReg
CopyFiles=ECHO_Device_CoInstaller_CopyFiles

[ECHO_Device_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"

[ECHO_Device_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll

[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0

===============  End of Echo.inf ===============

Dopo aver modificato tutte le sottostringhe ECHO_Device , il file MyDevice.inf verrà visualizzato come segue:

=============== Top of MyDevice.inf ===============
....
....
[DestinationDirs]
DefaultDestDir = 12
MyDevice_CoInstaller_CopyFiles = 11
....
....
;
;--- MyDevice Co-installer installation ------
;
[MyDevice.NT.CoInstallers]
AddReg=MyDevice_CoInstaller_AddReg
CopyFiles=MyDevice_CoInstaller_CopyFiles

[MyDevice_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"

[MyDevice_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll

[MyDevice.NT.Wdf]
KmdfService = MyDevice, MyDevice_wdfsect
[MyDevice_wdfsect]
KmdfLibraryVersion = 1.0
....
....
=============== End of MyDevice.inf ===============