DIFx ガイドライン
Windows 10 バージョン 1607 以降では、ドライバー インストール フレームワーク (DIFx) ツール (Difxapi.dll
、 Difxapp.dll
、 Difxappa.dll
、 DPInst.exe
) は非推奨となり、WDK には含まれません。
代わりに、インストーラーを必要としないスタンドアロン driver パッケージ として提供することをお勧めします。 この自己完結型パッケージは、正しく機能するために必要な独自の設定または構成を追加します。 スタンドアロン ドライバー パッケージは、ドライバー パッケージに必要なシステム状態を変更するためにインストーラーに依存しません。 スタンドアロン ドライバー パッケージは、Windows Update によるドライバー パッケージの配布と、オフライン イメージへのドライバー パッケージの追加をサポートするために必要です。 ハードウェアが接続されているシステムにWindows Update経由で配信するスタンドアロン ドライバー パッケージを公開することをお勧めします。 Windows Update でドライバー パッケージを発行する最初の手順は、ドライバー パッケージを Windows ハードウェア デベロッパー センターに送信することです。
DIFx を使用する場合は、古い WDK を使用して適切なツールを入手する必要があります。 次の注意事項に従ってください:
ドライバー パッケージで Windows 8.1 以降の TargetOSVersion 値のみを指定している場合、DIFxApp のカスタム アクション (
Difxapp.dll
とDifxappa.dll
) は、Windows 8.1 以降で変更された API GetVersionEx に対する DIFxApp の依存関係のため使用できません。 TargetOSVersion は INF Manufacturer セクションで指定されています。 DIFxApp は、MsiProcessDrivers、MsiInstallDrivers、MsiUninstallDrivers などの MSI カスタム アクションを公開します。 ドライバー パッケージで Windows 8.1 以降の TargetOSVersion 値が指定されている場合、MSI でこれらのカスタム アクションを使用することはできません。Windows 8.1 以降では、リンク先
Difxapi.dll
のアプリケーションには、アプリケーションを実行する OS バージョンを対象とするアプリ マニフェストが含まれている必要があります。 この要件は、WINDOWS 8.1 以降で変更された API GetVersionEx への DIFxAPI の依存関係によるものです。 Windows 8.1 での GetVersionEx の変更の詳細については、「Windows 用アプリケーションのターゲット設定」を参照してください。ドライバー パッケージで BuildNumber TargetOSVersion (Windows 10 バージョン 1607 (ビルド 14310 以降) で導入) の一部を使用している場合、そのドライバー パッケージで DIFx ツールを使用することはできません。 DIFx ツールでは、BuildNumber のターゲット設定はサポートされていません。
DIFx バージョン 2.1 を使用します。これは Windows 7 WDK から Windows 10 バージョン 1511 WDK で入手できます。 以前のバージョンの WDK では DIFx バージョン 2.1 を使用できますが、Windows 7 以降のバージョンの Windows との互換性はありませんでした。
以前の WDK には、x86 バージョンと amd64 バージョンの DIFx バイナリのみが含まれています。 DIFx バイナリは、他のアーキテクチャでは使用できません。
更新は行われなくなりましたが、DIFx の API リファレンス ドキュメントは Difxapi.h にあります。 DriverPackagePreinstall、DriverPackageInstall、DriverPackageUninstall API を使用している場合は、 DiInstallDriver と DiUninstallDriver への切り替えを検討してください。
ドライバー パッケージをインストールするためにカスタム インストーラーが必要な場合は、PnPUtil コマンド ライン ツールまたはドライバーインストール機能を呼び出すカスタム インストーラーを使用します。
同様に、ドライバー パッケージをアンインストールするためにカスタム インストーラーが必要な場合は、PnPUtil または DiUninstallDriver または SetupUninstallOEMInf を呼び出すカスタム インストーラーを使用します。