Verwenden des UMDF-Co-Installers
Hinweis
Wenn Ihr Treiber nur auf Windows 10 abzielt, müssen Sie WDF nicht weiterverteilen oder ein Coinstaller in Ihrem Treiberpaket bereitstellen. So richten Sie Windows 10 als Ziel aus:
- Wählen Sie in Visual Studio auf der Eigenschaftenseite Projekteinstellungen unter Treibereinstellungen ->Zielbetriebssystemversiondie Option Windows 10 oder höher aus. Dies entspricht dem Hinzufügen von Folgendem zur VCXPROJ-Datei:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- Geben Sie im Abschnitt "INF-Hersteller" 10.0 wie folgt als Zielbetriebssystemversion an:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Möglicherweise müssen Sie weiterhin auf den vom System bereitgestellten Coinstaller wie folgt verweisen:
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Ein Co-Installer aktualisiert die auf dem Computer gespeicherte Frameworkversion und verarbeitet frameworkspezifische INF-Dateiabschnitte. In diesem Thema werden die beiden UMDF-Co-Installer beschrieben, und wenn Sie eins in Ihr Treiberinstallationspaket einschließen oder auf einen Co-Installer in Ihrer INF-Datei verweisen müssen.
In Windows 8.1 sind die von Microsoft bereitgestellten verteilbaren Frameworkupdates als Teil des Windows Driver Kit (WDK) enthalten.
Eine vollständige Liste der Inhalte des Co-Installer-Verzeichnisses finden Sie unter Installationskomponenten für KMDF-Treiber.
Das Co-Installer-Verzeichnis enthält unter anderem einen Update-Co-Installer namens WUDFUpdate_MMmmm.dll, wobei MM die Hauptversionsnummer und mmm die Nebenversionsnummer ist.
Das Update-Co-Installer aktualisiert die UMDF-Frameworkversion, die sich auf dem Computer befindet. Wenn der Computer beispielsweise über UMDF-Version 1.9 verfügt und der Co-Installer Version 1.11 enthält, aktualisiert der Co-Installer die Frameworkversion des Computers auf 1.11.
Das Betriebssystem enthält ein weiteres Co-Installationsprogramm, das als Co-Installer der Konfiguration oder WudfCoinstaller.dll bezeichnet wird. Das Co-Installer der Konfiguration verarbeitet die UMDF-spezifischen Abschnitte der INF-Datei des Treibers und führt alle erforderlichen Updates für die Registrierung durch.
Wenn Sie einen UMDF 2.0-Treiber für Windows 8.1 schreiben, muss Ihre INF-Datei auf den Konfigurations-Co-Installer verweisen. Da das Co-Installer der Konfiguration im Betriebssystem enthalten ist, müssen Sie es nicht weiterverteilen.
Wenn Sie einen UMDF 1.11-Treiber für Betriebssysteme vor Windows 8.1 schreiben, müssen Sie sicherstellen, dass Version 1.11 des Frameworks auf Computern installiert ist, die Ihren Treiber verwenden. Dazu gibt es drei Möglichkeiten:
Verweisen Sie auf das Update-Co-Installer in Ihrer INF-Datei, und fügen Sie den Update-Co-Installer in Ihr Treiberinstallationspaket ein. Wenn das Betriebssystem Ihren Treiber installiert, wird der Co-Installer ausgeführt. Wenn Ihr Treiber über Windows Update verteilt wird, müssen Sie diese Option auswählen.
Verteilen Sie das relevante MSU-Paket (z. B. umdf-1.11-Win-6.0.msu) zusammen mit einer Setupanwendung, die es aufruft. Ein Beispiel für eine solche Anwendung finden Sie im Unterverzeichnis src\general\wdkinstall Ihrer WDK-Installation. Sie können diese Option auswählen, wenn Sie ein Setupprogramm schreiben, das im Lieferumfang des Geräts liegt und ausgeführt werden muss, bevor das Gerät verwendet werden kann. Wenn Sie diese Option auswählen, muss Ihre INF-Datei auf das Co-Installer der Konfiguration verweisen.
Verlassen Sie sich auf Windows Update, um die erforderliche Frameworkversion auf Computern zu installieren, die Ihren Treiber verwenden. Ab Version 1.11 des Frameworks werden neue Versionen von UMDF über Windows Update verteilt. Wenn Sie diese Option auswählen, muss Ihre INF-Datei auf das Co-Installer der Konfiguration verweisen.
In Ihrer INF-Datei müssen Sie immer entweder auf das Update-Co-Installationsprogramm oder auf das Konfigurations-Co-Installationsprogramm verweisen. Der Verweis auf beide Co-Installer im INF führt jedoch zu Installationsfehlern.
Die INF-Datei Ihres Treibers muss einen INF-Abschnitt DDInstall.CoInstallers enthalten. Wenn Sie das Update-Co-Installationsprogramm weiterverteilen, muss Ihr DDInstall.CoInstallers-Abschnitt sowohl eine INF AddReg-Direktive als auch eine INF CopyFiles-Direktive enthalten, wie im folgenden Beispiel gezeigt.
[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles
Die INF AddReg-Direktive identifiziert einen INF-Abschnitt, der einen CoInstallers32-Registrierungseintrag erstellt.
[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"
Die INF CopyFiles-Direktive identifiziert einen INF-Abschnitt, der das Co-Installationsprogramm vom Installationsgerät auf das Systemgerät kopiert.
[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll
Wenn Sie ein MSU-Paket verteilen, muss im Abschnitt DDInstall.CoInstallers eine AddReg-Anweisung angegeben werden, die auf das Co-Installer der Konfiguration verweist.
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
Die INF-Datei Ihres Treibers muss immer einen Abschnitt DDInstall.Wdf enthalten, den der Co-Installer nach der Installation liest. Informationen zu Anweisungen, die Ihr Treiber in DDInstall.Wdf angeben kann, finden Sie unter Angeben von WDF-Direktiven in INF-Dateien.
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.