テンプレートを使ったユニバーサル Windows ドライバー (UMDF 2) の作成
このトピックでは、ユーザーモード ドライバー フレームワーク (UMDF) 2 を使ってユニバーサル Windows ドライバーを作成する方法について説明します。Microsoft Visual Studio テンプレートを使って開始し、別のコンピューターにドライバーを展開してインストールします。
最初に、Visual Studio 2015 と Windows Driver Kit (WDK) 10 がインストールされていることを確認します。これらは、Windows ハードウェア デベロッパー センターからダウンロードできます。
Debugging Tools for Windows は、WDK のインストールに含まれています。
ドライバー パッケージの作成とビルド
Visual Studio を開きます。[ファイル] メニューで、[新規]、[プロジェクト] の順にクリックします。
[新しいプロジェクト] ダイアログ ボックスの左側のウィンドウで、[テンプレート]、[Visual C++]、[Windows Driver] (Windows ドライバー)、[WDF] の順に移動します。 [ユーザー モード ドライバー (UMDF V2)] をクリックします。
[名前] フィールドに、プロジェクト名として「UmdfDriver」と入力します。
注 新しい KMDF ドライバーか UMDF ドライバーを作成する場合、32 文字以下のドライバー名を選ぶ必要があります。この長さの制限は、wdfglobals.h で定義されています。
"場所" フィールドに、新規プロジェクトを作るディレクトリを入力します。
[ソリューションのディレクトリを作成] チェック ボックスをオンにします。[OK] をクリックします。
Visual Studio により、1 つのプロジェクトと 1 つのソリューションが作られます。これらは、[ソリューション エクスプローラー] ウィンドウに表示されます ([ソリューション エクスプローラー] ウィンドウが表示されていない場合は、[表示] メニューの [ソリューション エクスプローラー] をクリックします)。ソリューションには、UmdfDriver という名前のドライバー プロジェクトがあります。ドライバーのソース コードを表示するには、[ソース ファイル] の下に表示されるいずれかのファイルを開きます。Driver.cpp と Device.cpp は手始めとして利用できるファイルです。
[ソリューション エクスプローラー] ウィンドウで、[ソリューション 'UmdfDriver' (1 件のプロジェクト)] を右クリックし [構成マネージャー] をクリックします。ドライバー プロジェクトとパッケージ プロジェクトの両方に対する構成とプラットフォームを選びます。たとえば、Debug と x64 を選びます。
[ソリューション エクスプローラー] ウィンドウで、[UmdfDriver] を右クリックして、[プロパティ] をクリックします。 [構成プロパティ]、[ドライバーの設定]、[全般] の順に移動し、[ターゲット プラットフォーム] が既定で [ユニバーサル] に設定されていることを確認します。
ドライバーをビルドし、ドライバー パッケージを作るには、[ビルド] メニューの [ソリューションのビルド] をクリックします。Microsoft Visual Studio の [出力] ウィンドウにビルドの進行状況が表示されます ([出力] ウィンドウが表示されていない場合は、[表示] メニューの [出力] をクリックします)。
ビルド出力に "
> Driver is a Universal Driver.
" が含まれていることを確認します。
ソリューションのビルドが成功したことを確認したら、Visual Studio を閉じることができます。
ビルドされたドライバーを確認するには、エクスプローラーで [UmdfDriver] フォルダーに移動し、[x64\Debug\UmdfDriver] に移動します。ディレクトリには次のファイルが含まれています。
- UmdfDriver.dll -- ユーザー モード ドライバー ファイル
- UmdfDriver.inf -- ドライバーをインストールするときに Windows で使われる情報ファイル
ユニバーサル Windows ドライバーの展開とインストール
通常、ドライバーのテストと展開には、デバッガーとドライバーがそれぞれ別のコンピューター上で実行されます。デバッガーを実行するコンピューターをホスト コンピューター、ドライバーを実行するコンピューターをターゲット コンピューターと呼びます。ターゲット コンピューターはテスト コンピューターとも呼ばれます。
ここまでは、ホスト コンピューター上の Visual Studio を使ってドライバーのビルドを行いました。次にターゲット コンピューターの構成が必要です。「ドライバーの展開およびテストのためのコンピューターのプロビジョニング (WDK 10)」の手順に従ってください。その後で、ドライバーの展開、インストール、読み込み、デバッグを行うための準備をします。
ホスト コンピューター上で、Visual Studio でソリューションを開きます。ソリューション ファイル (UmdfDriver フォルダーの UmdfDriver.sln) をダブルクリックすることもできます。
[ソリューション エクスプローラー] ウィンドウで、[UmdfDriver] を右クリックして、[プロパティ] をクリックします。
次に示すように、[UmdfDriver プロパティ ページ] ウィンドウで、[構成プロパティ]、[ドライバーのインストール]、[展開] の順に移動します。
[展開前にドライバーの以前のバージョンを削除する] チェック ボックスをオンにします。
[Target Device Name (ターゲット デバイス名)] については、テストとデバッグ用に構成したコンピューターの名前を選んでください。
[ハードウェア ID のドライバーの更新] をクリックして、ドライバーのハードウェア ID を入力します。この作業のハードウェア ID は Root\UmdfDriver です。[OK] をクリックします。
注 この作業のハードウェア ID は特定のハードウェアを識別するものではありません。デバイス ツリー上でルート ノードの子として設定される架空のデバイスを表します。実際のハードウェアについては、[Hardware ID Driver Update] (ハードウェア ID のドライバーの更新) ではなく、[Install and Verify] (インストールと確認) をクリックします。
ハードウェア ID は、ドライバーの情報ファイル (INF) に記載されています。[ソリューション エクスプローラー] ウィンドウで [UmdfDriver]、[ドライバー ファイル] の順にクリックし、UmdfDriver.inf をダブルクリックします。ハードウェア ID は [Standard.NT$ARCH$] の下に記載されています。
[Standard.NT$ARCH$] %DeviceName%=MyDevice_Install,Root\UmdfDriver
[デバッグ] メニューの [デバッグ開始] をクリックするか、キーボードで F5 キーを押します。
ドライバーがターゲット コンピューターに展開、インストールされ、読み込まれるまで待機します。数分かかる場合があります。