WDF ドライバーのビルドと読み込み

このトピックでは、Visual Studio でドライバー プロジェクトのターゲット オペレーティング システムとフレームワークのバージョンを選択する方法について説明します。

再頒布可能フレームワーク コンポーネントをドライバー パッケージに含める必要があるかどうかを判断するには、「再頒布可能フレームワーク コンポーネント」を参照してください。

どのフレームワーク バージョンを使用すべきですか?

  • Windows XP をターゲットにするには、WDF 1.9 以前を使用します。
  • Windows Vista、Windows 7、または Windows 8 をターゲットにするには、WDF 1.11 以前を使用します。
  • Windows 8.1 をターゲットにするには、KMDF 1.13 以前、UMDF 1.x、または UMDF 2.0 を使用します。
  • Windows 10 バージョン 1507 を対象にするには、KMDF 1.15 以前、UMDF 1.x、または UMDF 2.15 以前を使用します。

KMDF と UMDF のバージョンの詳細については、「KMDF バージョン履歴」および「UMDF バージョン履歴」を参照してください。

Visual Studio でバージョンを設定するにはどうすればよいですか?

最新バージョンの Windows と最新の KMDF または UMDF バージョンのドライバー プロジェクトをビルドする場合は、既定値をそのまま使用して、この手順をスキップできます。

そうでない場合は、次の手順に従います。

  • ソリューションを右クリックし、[構成マネージャー] を選択します。 [プロジェクト構成] を目的の値 (デバッグ など) に設定します。
  • ドライバー プロジェクトを右クリックして、[プロパティ] を選択します。 [構成プロパティ] - >[ドライバー設定] - >[ドライバー モデル] を開きます。 [ドライバー モデル設定][KMDF バージョン マイナー (ターゲット バージョン)] または [UMDF バージョン マイナー (ターゲット バージョン)] の値を目的の値に変更します。 KMDF バージョン マイナー (最小必須)UMDF バージョン マイナー (最小必須) の詳細については、「最小必須の指定」を参照してください。

Windows 10 に付属する Windows Driver Kit (WDK) を使用して、KMDF 1.9-1.29 ドライバーと UMDF 1.9-2.29 ドライバーをビルドできます。

KMDF と UMDF のバージョンの詳細については、「KMDF バージョン履歴」および「UMDF バージョン履歴」を参照してください。

リンクと読み込み

Microsoft Visual Studio で Windows Driver Frameworks (WDF) プロジェクトをビルドすると、MSBuild はドライバーを適切なフレームワーク ライブラリ、ライブラリのローダー、スタブ ファイルにリンクします。これらはすべて WDK に含まれています。 (ライブラリとローダーは、必要に応じてドライバー パッケージと共に配布できるように、フレームワーク の共同インストーラー にも含まれています)。

スタブ ファイルには、FxDriverEntry という特殊なエントリ ポイント ルーチンが含まれています。 MSBuild は、スタブの FxDriverEntry ルーチンをフレームワークベースのドライバーの初期エントリ ポイントとして設定します。

オペレーティング システムがフレームワークベースのドライバーを読み込むと、スタブ ファイルとライブラリのローダーも読み込まれます。 次に、システムはスタブ ファイルの FxDriverEntry ルーチンを呼び出します。 その後、このルーチンはローダーを呼び出します。 ローダーは、ドライバーが必要とするフレームワーク ライブラリのバージョンを決定し、正しいバージョンのライブラリをカーネルモード サービスとして読み込みます (まだ読み込まれていない場合)。 最後に、ライブラリはドライバーの DriverEntry ルーチンを呼び出します。