DIFx-Richtlinien

Ab Windows 10 Version 1607 (Redstone 1) sind die DiFx-Tools (Driver Install Frameworks) (Difxapi.dll, Difxapp.dll, Difxappa.dllund DPInst.exe) veraltet und nicht mehr im WDK enthalten.

Stattdessen wird empfohlen, Ihr Treiberpaket als eigenständiges Treiberpaket bereitzustellen, für das kein Installationsprogramm erforderlich ist. Dies ist ein eigenständiges Paket, das eigene Einstellungen oder Konfigurationen hinzufügt, die es für die ordnungsgemäße Funktion benötigt, anstatt von einem Installer abhängig zu sein, um den Systemzustand zu ändern, von dem das Treiberpaket möglicherweise abhängt. Eigenständige Treiberpakete sind erforderlich, um Treiberpaketszenarien wie das Verteilen 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 auf 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. Es gelten die folgenden Einschränkungen:

  • Wenn Ihr Treiberpaket nur TargetOSVersion-Werte von Windows 8.1 oder höher angibt, können Sie die benutzerdefinierte DIFxApp MSI-Aktion (Difxapp.dll und Difxappa.dll) aufgrund der Abhängigkeit von DIFxApp von GetVersionEx nicht verwenden, einer API, die sich ab Windows 8.1 geändert hat. TargetOSVersion wird im Abschnitt "INF-Hersteller" 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 verwenden.
  • Ab Windows 8.1 müssen Anwendungen, mit denen eine Verknüpfung hergestellt Difxapi.dll wird, ein App-Manifest für die Betriebssystemversion enthalten, für die die Anwendung ausgeführt werden soll. Dies ist auf die Abhängigkeit von DIFxAPI von GetVersionEx zurückzuführen, einer API, die sich ab Windows 8.1 geändert hat. Weitere Informationen zu Änderungen an GetVersionEx in Windows 8.1 finden Sie unter Targeting your application for Windows.For more on changes to GetVersionEx in Windows 8.1, see 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 kein BuildNumber-Targeting.
  • Verwenden Sie DIFx Version 2.1, die im Windows 7 WDK über die Windows 10 Version 1511 WDK verfügbar ist. Obwohl eine DIFx-Version von 2.1 in früheren Versionen des 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 es nicht mehr aktualisiert wird, finden Sie die API-Referenzdokumentation für DIFx unter Difxapi.h. Wenn Sie die APIs DriverPackagePreinstall, DriverPackageInstall und DriverPackageUninstall verwenden, sollten Sie zu DiInstallDriver und DiUninstallDriver wechseln.

Wenn Sie zum Installieren Des Treiberpakets weiterhin ein benutzerdefiniertes Installationsprogramm 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.