DIFx-Richtlinien
Ab Windows 10, Version 1607, sind die Treiberinstallationsframeworks (DIFx)-Tools (Difxapi.dll
, Difxapp.dll
, Difxappa.dll
und DPInst.exe
) veraltet und nicht mehr im WDK enthalten.
Stattdessen wird empfohlen, ein eigenständiges Treiberpaket bereitzustellen, das kein Installationsprogramm erfordert. Dieses eigenständige Paket fügt seine eigenen Einstellungen oder Konfigurationen hinzu, die es ordnungsgemäß funktionieren muss. Ein eigenständiges Treiberpaket hängt nicht von einem Installationsprogramm ab, um den Systemstatus zu ändern, den das Treiberpaket möglicherweise benötigt. Eigenständige Treiberpakete sind erforderlich, um die Verteilung des Treiberpakets über Windows Update und das Hinzufügen des Treiberpakets zu einem Offlineimage zu unterstützen. Es wird empfohlen, ein eigenständiges Treiberpaket zu veröffentlichen, das über Windows Update an Systeme übermittelt wird, an die Ihre Hardware angeschlossen ist. Der erste Schritt zum Veröffentlichen des Treiberpakets unter Windows Update besteht darin, Ihr Treiberpaket an das Windows Hardware Dev Center zu übermitteln.
Wenn Sie DIFx trotzdem verwenden möchten, müssen Sie ein älteres WDK verwenden, um die richtigen Tools zu erhalten. Die folgenden Vorbehalte gelten:
Wenn Ihr Treiberpaket nur TargetOSVersion-Werte von Windows 8.1 oder höher angibt, können Sie die benutzerdefinierte DIFxApp MSI-Aktion (
Difxapp.dll
undDifxappa.dll
) aufgrund der Abhängigkeit von DIFxApp von GetVersionEx nicht verwenden, eine API, die ab Windows 8.1 geändert wurde. TargetOSVersion wird im ABSCHNITT " INF Manufacturer" angegeben. DIFxApp macht benutzerdefinierte MSI-Aktionen wie MsiProcessDrivers, MsiInstallDrivers und MsiUninstallDrivers verfügbar. Wenn Ihr Treiberpaket TargetOSVersion-Werte von Windows 8.1 oder höher angibt, können Sie diese benutzerdefinierten Aktionen nicht in Ihrer MSI-Datei verwenden.Ab Windows 8.1 müssen Anwendungen, die eine Verknüpfung herstellen
Difxapi.dll
, ein App-Manifest für die Betriebssystemversion enthalten, auf der die Anwendung ausgeführt werden soll. Diese Anforderung liegt an der Abhängigkeit von DIFxAPI von GetVersionEx, einer API, die ab Windows 8.1 geändert wurde. Weitere Informationen zu Änderungen an GetVersionEx in Windows 8.1 finden Sie unter "Targeting your application for Windows".Wenn Ihr Treiberpaket den BuildNumber-Teil von TargetOSVersion verwendet (eingeführt in Windows 10, Version 1607 (Build 14310 und höher)), können Sie die DIFx-Tools nicht mit diesem Treiberpaket verwenden. Die DIFx-Tools unterstützen keine BuildNumber-Zielbestimmung.
Verwenden Sie DIFx Version 2.1, die in Windows 7 WDK über windows 10 Version 1511 WDK verfügbar ist. Obwohl eine DIFx-Version von 2.1 in früheren Versionen von WDK verfügbar war, war sie nicht mit Windows 7 und höheren Versionen von Windows kompatibel.
Die älteren WDKs enthalten nur x86- und amd64-Versionen der DIFx-Binärdateien. Die DIFx-Binärdateien sind für andere Architekturen nicht verfügbar.
Obwohl sie nicht mehr aktualisiert wird, finden Sie die API-Referenzdokumentation für DIFx unter Difxapi.h. Wenn Sie die DriverPackagePreinstall-, DriverPackageInstall- und DriverPackageUninstall-APIs verwenden, sollten Sie zu DiInstallDriver und DiUninstallDriver wechseln.
Wenn Sie weiterhin ein benutzerdefiniertes Installationsprogramm zum Installieren des Treiberpakets benötigen, verwenden Sie entweder das Befehlszeilentool PnPUtil oder ein benutzerdefiniertes Installationsprogramm, das Treiberinstallationsfunktionen aufruft.
Wenn Sie das benutzerdefinierte Installationsprogramm zum Deinstallieren des Treiberpakets benötigen, verwenden Sie entweder PnPUtil oder ein benutzerdefiniertes Installationsprogramm, das DiUninstallDriver oder SetupUninstallOEMInf aufruft.