UMDF 共同インストーラーの使用
Note
ドライバーが Windows 10 のみを対象とする場合は、WDF を再配布したり、ドライバー パッケージにコインストーラーを提供したりする必要はありません。 Windows 10 に対応するには
- Visual Studio のドライバーの設定 ->ターゲットOSバージョンの下にある、プロジェクトの設定プロパティページで、Windows 10 以降のバージョンを選択してください。 これは、.vcxproj ファイルに以下を追加することと同じです。
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- INF Manufacturer セクションで、次のようにターゲット OS バージョンとして 10.0 を指定します。
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
次のように、システム提供のコインストーラーを引き続き参照する必要がある場合があります。
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
コインストーラーは、マシンに格納されているフレームワーク バージョンを更新し、フレームワーク固有の INF ファイル セクションを処理します。 このトピックでは、2 つの UMDF コインストーラーと、ドライバー インストール パッケージにコインストーラを含める必要がある場合、またはINFファイルでコインストーラを参照する必要がある場合について説明します。
コインストーラー パッケージの取得
Windows 8.1 では、Microsoft が提供する再頒布可能フレームワークの更新プログラムが、Windows Driver Kit (WDK) の一部として含まれています。
コインストーラー ディレクトリの内容の完全な一覧については、 「KMDF ドライバーのインストール コンポーネント」をご参照ください。
他のコンポーネントの中でも、コインストーラー ディレクトリには、更新プログラムのコインストーラーであるWUDFUpdate_MMmmm.dll が含まれています。ここで、MMは、メジャー バージョン番号、mmm はマイナー バージョン番号です。
更新プログラムのコインストーラーは、コンピューター上の UMDF フレームワークのバージョンを更新します。 たとえば、コンピューターに UMDF バージョン 1.9 があり、コインストーラーにバージョン 1.11 が含まれている場合、コインストーラーはコンピューターのフレームワーク バージョンを 1.11 に更新します。
オペレーティング システムには、もう一つの構成コインストーラー、または WudfCoinstaller.dll が含まれています。 構成コインストーラーは、ドライバーの INF ファイルの UMDF 固有のセクションを処理し、レジストリに必要な更新を行います。
INF ファイルからのコインストーラーの参照
Windows 8.1 用 UMDF 2.0 ドライバーを作成する場合は、INF ファイルで構成コインストーラーを参照する必要があります。 構成コインストーラーはオペレーティング システムに含まれているため、再配布する必要はありません。
Windows 8.1 より前のオペレーティング システムを対象とする UMDF 1.11 ドライバーを作成する場合は、ドライバーを使用するコンピューターにバージョン 1.11 のフレームワークがインストールされていることを確認する必要があります。 これには 3 通りの方法があります。
INF ファイルで更新プログラムのコインストーラーを参照し、ドライバーのインストール パッケージに更新プログラムのコインストーラーを含めます。 オペレーティング システムがドライバーをインストールすると、コインストーラーが実行されます。 ドライバーが Windows Update 経由で配布される場合は、このオプションを選択する必要があります。
関連する MSU パッケージ (umdf-1.11-Win-6.0.msu など) を、それを呼び出すセットアップ アプリケーションと共に再配布します。 このようなアプリケーションのサンプルは、WDK インストールの src\general\wdkinstall サブディレクトリにあります。 このオプションはデバイスに付属し、デバイスを使用する前に実行する必要があるセットアップ プログラムを作成する場合に選択できます。 このオプションを選択した場合、INF ファイルは構成コインストーラーを参照する必要があります。
Windows Update を使用して、ドライバーを使用するマシンに必要なフレームワーク バージョンをインストールします。 フレームワークのバージョン 1.11 以降では、新しいバージョンの UMDF は Windows Update 経由で配布されます。 このオプションを選択した場合、INF ファイルは構成コインストーラーを参照する必要があります。
INF ファイルでは、更新プログラムのコインストーラーまたは構成コインストーラーを常に参照する必要があります。 ただし、INF で両方のコインストーラーを参照すると、インストール エラーが発生します。
コインストーラーの INF ファイル セクション
ドライバーの INF ファイルには INF DDInstall.CoInstallers セクションが、含まれている必要があります。 更新プログラムのコインストーラーを再配布する場合は、次の例に示すように、DDInstall.CoInstallers セクションに INF AddReg ディレクティブと INF CopyFiles ディレクティブが含まれている必要があります。
[MyDriver_Install.CoInstallers]
AddReg = MyDriver_Install.CoInstallers_AddReg
CopyFiles = MyDriver_CoInstallers_CopyFiles
INF AddReg ディレクティブは CoInstallers32 レジストリ エントリを作成する INF セクションを識別します。
[MyDriver_Install.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WudfUpdate_01011.dll"
INF CopyFiles ディレクティブは インストール デバイスからシステム デバイスにコインストーラーをコピーする INF セクションを識別します。
[MyDriver_CoInstallers_CopyFiles]
WudfUpdate_01011.dll
MSU パッケージを再配布する場合は、DDInstall.CoInstallers 構成コインストーラーを参照する AddReg ディレクティブを指定する必要があります。
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,,CoInstallers32,0x00010000,WudfCoinstaller.dll
ドライバーの INF ファイルには、インストール後に共同インストーラーが読み取る DDInstall.Wdf セクションが常に含まれている必要があります。 ドライバーが DDInstall.Wdfで指定できるディレクティブについては、「INF ファイルでの WDF ディレクティブの指定」をご参照ください。
INX ファイルと Stampinf ツールを使用して、フレームワークの複数のバージョンに対して複数の INF ファイルを作成しないようにすることができます。 INX ファイルの詳細については、「INX ファイルを使用した INF ファイルの作成」を参照してください。