Angeben des KMDF-Co-Installers in einer INF-Datei
Hinweis
Wenn Ihr Treiber nur auf Windows 10 ausgerichtet ist, müssen Sie WDF nicht neu verteilen oder einen Coinstaller in Ihrem Treiberpaket bereitstellen. So richten Sie Windows 10 als Ziel ein:
- Wählen Sie in Visual Studio auf der Eigenschaftenseite "Projekteinstellungen" unter "Treibereinstellungen –>Zielbetriebssystemversion" Windows 10 oder höher aus. Dies entspricht dem Hinzufügen folgender Elemente zur .vcxproj Datei:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- Geben Sie im Abschnitt "INF Manufacturer" 10.0 als Zielbetriebssystemversion wie folgt an:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Wenn Sie ein Co-Installer in Ihr Treiberpaket einschließen, lesen Sie dieses Thema, um Informationen zu Abschnitten zu erhalten, die Sie in der INF-Datei Ihres Treibers angeben müssen. Diese Informationen gelten nicht, wenn Sie Ihre eigene Setupanwendung bereitstellen, die von Microsoft bereitgestellte .msu redistributables aufruft.
INF-Dateiabschnitte für das Co-Installer
Die INF-Datei Ihres Treibers muss einen INF DDInstall enthalten. CoInstallers-Abschnitt , der das Co-Installer installiert. Dieser Abschnitt kann beispielsweise den Namen "MyDevice.ntx86.CoInstallers" haben. Weitere Informationen zum Angeben eines Co-Installers in einer INF-Datei finden Sie im Abschnitt "INF DDInstall.CoInstallers".
Darüber hinaus muss die INF-Datei Ihres Treibers ein INF DDInstall enthalten. Wdf-Abschnitt , den das Co-Installer liest, nachdem es installiert wurde. Beispielsweise kann dieser Abschnitt den Namen "MyDevice.ntx86.Wdf" haben. Nachdem das Co-Installer des Frameworks installiert wurde, liest es diesen Abschnitt, während er Ihren Treiber installiert.
Das INF DDInstall. Der Wdf-Abschnitt enthält die folgende Direktive:
- KmdfService = DriverService,Wdf-install-section
DriverService stellt den Namen dar, den das Betriebssystem dem Kernelmodusdienst des Treibers zuweist, und der Wdf-install-Section stellt den Namen eines INF-Abschnitts dar, den das Co-Installer liest, um Informationen über Ihren Treiber zu erhalten.
Der INF-Abschnitt, den der Wdf-install-section identifiziert, muss die folgende Direktive enthalten:
- KmdfLibraryVersion = WdfLibraryVersion
WdfLibraryVersion stellt eine Bibliotheksversionsnummer dar, z. B. "1.0" oder "1.11".
Beispiel: Das folgende INF DDInstall.For example, the following INF DDInstall. Der Wdf-Abschnitt gibt Echo_wdfsect als Wdf-Install-Section-Namen an.
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
Sie können das Erstellen mehrerer INF-Dateien für mehrere Versionen des Frameworks vermeiden, indem Sie INX-Dateien und das Stampinf-Tool verwenden. Weitere Informationen zu INX-Dateien finden Sie unter Verwenden von INX-Dateien zum Erstellen von INF-Dateien.
Beispiel FÜR INF DDInstall. CoInstallers und DDInstall. Wdf-Abschnitte
Das folgende Codebeispiel zeigt, wie das INF DDInstall erstellt wird. CoInstallers-Abschnitt und INF DDInstall. Wdf-Abschnitt einer INF-Datei für einen PnP-Treiber. Das Beispiel zeigt, wie Sie eine INF-Datei erstellen, die "MyDevice.inf" heißt und auf der Echo.inf-Datei des ECHO-Beispieltreibers basiert. Der Echo-Beispieltreiber befindet sich im Beispielverzeichnis des WDK.
Um MyDevice.inf zu erstellen, müssen Sie alle ECHO_Device Teilzeichenfolgen in Echo.inf in einen Namen ändern, der für Ihr Produkt geeignet ist. Im folgenden Codebeispiel wird MyDevice verwendet.
Sie sollten versuchen, mit dem Abschnittslayout übereinzugleichen, das das Echo.inf-Beispiel verwendet. Mit anderen Worten, wenn möglich, behalten Sie die Mitinstallationsabschnitte zusammen, um Cut-and-Paste-Fehler leichter zu erkennen.
Bevor Sie echo.inf geändert haben, sind die Abschnitte, die das Co-Installer installieren, wie folgt:
=============== 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 ===============
Nachdem Sie alle ECHO_Device Teilzeichenfolgen geändert haben, sollte die Datei "MyDevice.inf " wie folgt angezeigt werden:
=============== 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 ===============