新しいデバイスファンクションドライバーの作成
この記事では、Visual Studio を使用して新しいデバイス ファンクション ドライバーの作成を開始する方法を説明します。 デバイス機能ドライバーは、他の記事で説明するフィルター ドライバー、ソフトウェア ドライバー、ファイル システム ドライバーとは異なります。 デバイス関数ドライバーと他の種類のドライバーとの違いについては、「ドライバーとは?」、「ドライバー モデルの選択」、および「デバイス ノードとデバイス スタック」を参照してください。
まず、「デバイスとドライバーのテクノロジ」で説明されているテクノロジのリストのどこにデバイスが当てはまるかを判断します。 デバイスでどのドライバー モデルが利用できるかについては、その特定のテクノロジーのドキュメントを参照してください。 推奨されるドライバー モデルはテクノロジーによって異なります。 一部のテクノロジについては、ドキュメントではユーザー モード ドライバー フレームワーク (UMDF) またはカーネル モード ドライバー フレームワーク (KMDF) の使用を推奨しています。 他のテクノロジについては、ドキュメントでドライバー ペアの一部であるミニドライバーを作成する方法が説明されています。 ミニドライバーは、ミニポートやミニクラスなど、さまざまな名前で呼ばれます。
次のいずれのケースがドライバー モデルの推奨事項に該当するかを判断し、次の手順に従います。
ケース 1: テクノロジのドキュメントでは UMDFを推奨しています
- Visual Studio を起動します。
- 起動ダイアログで「新しいプロジェクトの作成」を選択するか、「新規」 | 「新規プロジェクト」を選択します。 Visual Studio の [ファイル] メニューからプロジェクトを作成します。
- [新しいプロジェクトの作成] ダイアログ ボックスの右側のペインで、[ユーザー モード ドライバー (UMDF V2)] を見つけて選択します。
- [次へ] を選択します。
- [プロジェクト名]、[場所]、および [ソリューション名] ボックスに入力し、[作成] を選択します。 詳細については、「テンプレートに基づいた UMDF ドライバーの作成」を参照してください。
Note
新しい UMDF ドライバーを作成する場合、32 文字以下のドライバー名を選ぶ必要があります。 この長さの制限は wdfglobals.h で定義されています。
- この時点で、ほとんどの UMDF ドライバーに必要な一般的なコードを実装するドライバー プロジェクトが完成しました。 これで、デバイスに固有のコードを指定できるようになりました。 実装する必要があるインターフェイスについては、テクノロジのドキュメントを参照してください。
ケース 2: テクノロジのドキュメントでは KMDF を推奨しています
- Visual Studio を起動します。
- 起動ダイアログで「新しいプロジェクトの作成」を選択するか、「新規」 | 「新規プロジェクト」を選択します。 Visual Studio の [ファイル] メニューからプロジェクトを作成します。
- [新しいプロジェクトの作成] ダイアログ ボックスの右側のペインで、[カーネル モード ドライバー (KMDF)] を見つけて選択します。
- [次へ] を選択します。
- [プロジェクト名]、[場所]、および [ソリューション名] ボックスに入力し、[作成] を選択します。 詳細については、「テンプレートに基づいた KMDF ドライバーの作成」を参照してください。
Note
新しい KMDF ドライバーを作成する場合、32 文字以下のドライバー名を選ぶ必要があります。 この長さの制限は wdfglobals.h で定義されています。
- この時点で、ほとんどの KMDF ドライバーに必要な一般的なコードを実装するドライバー プロジェクトが完成しました。 これで、デバイスに固有のコードを指定できるようになりました。 実装する必要があるメソッドについては、テクノロジのドキュメントを参照してください。
ケース 3: テクノロジのドキュメントにはミニドライバー モデルを説明します
デバイス テクノロジにミニポート、ミニクラス、またはその他のミニドライバー モデルがある場合は、Visual Studio にそのモデル用の特定のテンプレートがあるかどうかを確認してください。
- Visual Studio を起動します。
- 起動ダイアログで「新しいプロジェクトの作成」を選択するか、「新規」 | 「新規プロジェクト」を選択します。 Visual Studio の [ファイル] メニューからプロジェクトを作成します。
- [新しいプロジェクトの作成] ダイアログ ボックスの右側のペインで、インストールされているテンプレートのリストを参照して、作成する必要があるドライバーの種類のテンプレートを見つけます。
- ご使用のドライバーの種類に適したテンプレートが見つかった場合は、それを選択します。
- [次へ] を選択します。
- [プロジェクト名]、[場所]、および [ソリューション名] ボックスに入力し、[作成] を選択します。
- ドライバー ウィザードが表示された場合は、ウィザードの手順に従ってドライバー プロジェクトを作成します。
- この時点で、ドライバーに必要な一般的なコードを実装するドライバー プロジェクトが完成しました。 これで、デバイスに固有のコードを指定できるようになりました。 実装する必要がある機能については、使用しているテクノロジのドキュメントを参照してください。
デバイス テクノロジにミニドライバー モデルがあり、使用するタイプのミニドライバーに特定のテンプレートが見つからない場合は、Windows ドライバー モデル (WDM) テンプレートが開始点になる可能性が高くなります。 ガイダンスについては、テクノロジー固有のドキュメントを参照してください。 まれに、KMDF を使用してミニドライバーを作成することもできますが、通常は WDM から開始します。
- Visual Studio を起動します。
- 起動ダイアログで「新しいプロジェクトの作成」を選択するか、「新規」 | 「新規プロジェクト」を選択します。 Visual Studio の [ファイル] メニューからプロジェクトを作成します。
- [新しいプロジェクトの作成] ダイアログ ボックスの右側のペインで、[空の WDM ドライバー] を見つけて選択します。
- [次へ] を選択します。
- [プロジェクト名]、[場所]、および [ソリューション名] ボックスに入力し、[作成] を選択します。
- この時点で、空の WDM ドライバー プロジェクトが完成しました。 [ソリューション エクスプローラー] ウィンドウでドライバー プロジェクトを右クリックし、[追加] | [追加]を選択します。新商品。
- [新しい項目の追加] ダイアログ ボックスで、.cpp ファイルの名前を入力し、[追加] を選択します。
Note
.cpp ファイルでなく .c ファイルを作成する場合は、拡張子が .c の名前を入力します。
- 実装する必要がある機能については、使用しているテクノロジのドキュメントを参照してください。 関数を実装して整理するときに、.cpp または .c ファイルをさらに追加することもできます。