次の方法で共有


Visual Studio または MSBuild を使用したドライバーのビルド

このトピックでは、Visual Studio開発環境を使用してドライバーをビルドする方法、またはVisual Studioコマンド プロンプト ウィンドウとMicrosoft Build Engine (MSBuild) を使用してコマンド ラインからドライバーをビルドする方法について説明します。

Windows 用ドライバーを開発するには、Visual Studio に SDK と WDK をインストールし、ドライバー設定を構成する必要があります。 コンピューター上の SDK と WDK のバージョンが一致していることを確認します。

Visual Studio を使用して、ドライバーをビルドする

Visual Studio でプロジェクトやソリューションを構築するのと同じ方法でドライバーを構築します。 ドライバー テンプレートを使用して新しいドライバー プロジェクトを作成すると、テンプレートによって既定の (アクティブな) プロジェクト構成と既定の (アクティブな) ソリューション ビルド構成が定義されます。

ビルド構成の管理と編集の詳細については、「Visual Studio でのビルド」を参照してください。

KMDF ドライバーの設定

VS2022でドライバ設定を行うには、ドライバプロジェクトを右クリックして、プロパティを選択し、 [プロパティ] ->[構成プロパティ] ->[ドライバ設定]に移動します。

Visual Studio KMDF ドライバーの設定。

ターゲット OS バージョン

ターゲット OS バージョン は、ドライバーが開発されている Windows バージョンを指します。 ターゲット OS バージョンを、ドライバーがサポートする最小バージョンに設定します。 たとえば、Windows 10 のドライバーでは、Windows 10 以降のすべてのバージョンがサポートされている必要があります。

これらのトピックのガイダンスに従って、複数のバージョンの Windows を サポートするように ドライバー パッケージ が適切に記述されていることを確認します。

対象プラットフォーム

Windows ターゲット プラットフォームには、 ユニバーサル ドライバーデスクトップ ドライバー および Windows ドライバーの 3 つの分類があります。

  1. ユニバーサル ドライバー は 次の必要があります。

  2. デスクトップ ドライバー は 次の操作を行う必要があります。

    デスクトップ ドライバーの条件を満たすドライバーは Windows ロゴ認定済みであり、Windows Update プログラムに追加できます。

  3. Windows Drivers は以下の操作が必要です。

    • すべてのデスクトップ ドライバーの要件を満たします。
    • ドライバー パッケージ分離 の要件に完全に準拠していること。
    • 合格 InfVerif /w
    • Windows ドライバーは、最も制限の厳しいターゲット プラットフォームの選択であり、すべての信頼性と保守性の要件を満たしています。

次の表は、ドライバーの分類をまとめたものです。

機能 ユニバーサル ドライバー デスクトップ ドライバー Windows ドライバー
Infverif スイッチ InfVerif /u InfVerif /h InfVerif /w
現在のWHCP要件 いいえ 有効 いいえ
Windows OS のすべてのバリエーションをサポート いいえ 番号 はい
X64/ARM64 のサポート はい イエス はい
APIVALIDATOR のコンプライアンスが必要 いいえ 番号 はい
デスクトップ OS のサポート (ターゲット OS バージョン) はい イエス はい
GitHub ドライバー サンプルのサポート はい はい いいえ

ドライバー構成

ドライバーをビルドするときは、WDK または EWDK を使用して Visual Studio でプラットフォーム アーキテクチャとNT_TARGET_VERSIONが適切に設定されていることを確認します。 開発用の既定のソリューション ビルド構成は、 デバッグWin64 です。

  1. ソリューション エクスプローラー でソリューションを長押し (または右クリック) し、 [構成マネージャー] を選びます。
  2. [構成マネージャー] から、関心のあるビルドの種類に対応する [アクティブ ソリューション構成] (たとえば、 [デバッグ] または [リリース]) と [アクティブ ソリューション プラットフォーム] (たとえば、 [Win64])を選択します。
  3. プロジェクトを長押し (または右クリック) して、 [プロパティ]を選択します 。 [ドライバーの設定]、 >[全般] の順に移動し、 [ターゲットの OS バージョン][ターゲット プラットフォーム] を設定します。
  4. ドライバーまたはドライバー パッケージのプロジェクト プロパティを構成します。 展開、ドライバーの署名、またはその他のタスクのプロパティを設定できます。 詳細については、「ドライバーおよびドライバー パッケージのプロジェクト プロパティの構成」を参照してください。

ドライバーを構築するには

  1. Visual Studio でドライバー プロジェクトまたはソリューションを開きます。
  2. [ビルド] メニューの [ソリューションのビルド] を選びます (Ctrl + Shift + B)。
  3. ビルド出力ウィンドウでコンパイル時エラーを表示します。

コマンド ライン (MSBuild) を使ったドライバーのビルド

Visual Studio コマンド プロンプト ウィンドウと Microsoft Build Engine (MSBuild) を使用して、コマンド ラインからドライバーをビルドできます。

Visual Studio のコマンド プロンプト ウィンドウを使ってドライバーをビルドするには

  1. [開発者コマンド プロンプト for VS2022] ウィンドウを開きます。

    このウィンドウで MSBuild.exe を使い、プロジェクト (.vcxproj) またはソリューション (.sln) ファイルを指定して、任意の Visual Studio プロジェクトをビルドできます。

  2. プロジェクト ディレクトリに移動し、ターゲットの MSBuild コマンドを入力します 。

    たとえば、デフォルトのプラットフォームと構成を使用して MyDriver.vcxproj という Visual Studio ドライバー プロジェクトのクリーン ビルドを実行するには、プロジェクト ディレクトリに移動し、次の MSBuild コマンドを入力します。

    msbuild /t:clean /t:build .\MyDriver.vcxproj
    

    特定の構成とプラットフォームを指定するには、次を使用します。

    msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS    
    

    次のコマンドは、"デバッグ" 構成、"Win32" プラットフォーム、およびWindows 10用のドライバーをビルドします。

    msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
    

    TargetPlatformVersion 設定は省略可能であり、ビルドに使用するキットのバージョンを指定します。 既定値は最新キット バージョンです。

ドライバーとドライバー パッケージのためのプロジェクト プロパティの構成

プロパティ ページ を使用して 、ドライバーとドライバー パッケージのオプションを構成および設定します。 ソリューションを構築するときにドライバーが自動的に署名されるように、またはリモートのテスト コンピューターに自動的に展開されるようにドライバーを構成することを選択できます。

個々のドライバーまたはドライバー パッケージ全体のプロパティを設定できます。 次のセクションでは、ドライバーとドライバー パッケージ専用に構成できる使用可能なプロパティの一部を示します。

ドライバープロジェクトのプロパティ

ドライバ パッケージのプロパティ

WDK コマンド ライン ツール プロジェクトの統合

WDK には、 StampinfWPP プリプロセッサ (WPP トレーシング) など、一般的にビルド プロセスに含まれるコマンド ライン ツールが多数用意されています。 これらのツールは Visual Studio とともに配布されていません。 これらのツールを Visual Studio ビルド環境と組み合わせるために、 MSBuild の WDK タスクとしてラップされます。 ドライバー テンプレートのいずれかを使用している場合、または変換した既存のドライバーがある場合は、これらのプロパティ ページがプロジェクトにすでに存在している可能性があります。 そうでない場合は、関連するファイルの種類 (たとえば、メッセージ コンパイラの .mc ファイルや .man ファイル) をプロジェクトまたはソリューションに追加すると、プロパティ ページがプロジェクトに自動的に追加されます。 詳細については、「WDKとVisual Studioビルド環境」を参照してください。

ドライバーのビルドに関するトラブルシューティングのヒント

ビルドの問題のトラブルシューティングを支援するために、Visual Studio でビルド出力の詳細度を上げることができます。

  1. [ツール]、 >[オプション]の順に選びます。
  2. [プロジェクトおよびソリューション] フォルダーを選択し、[ビルドして実行] を選びます。
  3. MSBuild プロジェクトのビルド出力の詳細度 および MSBuild プロジェクトのビルド ログ ファイルの詳細度のオプションを変更します。 デフォルトでは、これらは [最小] に設定されています。

Windows 8 ドライバーの更新

WDK 8 や Windows Driver Kit (WDK) 8.1 を使って作成したプロジェクトやソリューションを、Windows Driver Kit (WDK) 10 と Visual Studio で動作するように変換できます。 プロジェクトまたはソリューションを開く前に、ProjectUpgradeTool を実行します ProjectUpgradeTool はプロジェクトとソリューションを変換し、WDK 10 を使って構築できるようにします。

Windows Driver Kit (WDK) 8以降では、Windowsビルド ユーティリティ (Build.exe) がMSBuildに置き換えられました。 WDK は、Visual Studio プロジェクトをビルドする場合と同じコンパイラとビルド ツールを使うようになりました。 以前のバージョンの WDK でビルドされたドライバー プロジェクトは、Visual Studio 環境で動作するように変換する必要があります。 コマンド ラインから変換ユーティリティを実行することも、既存のソースから新しいVisual Studioプロジェクトを作成して既存のドライバーを変換することもできます。 詳細については、「既存のソース ファイルWDK および Visual Studio ビルド環境からのドライバーの作成」を参照してください。