Microsoft Visual Studio 2019 を Windows Driver Kit (WDK) バージョン 2004 と共に使用し、Windows ドライバーを構築できます。 キットとツールは Windows ハードウェア デベロッパー センターからダウンロードできます
多くの場合、レガシ カーネルモード ドライバーは、そのドライバーでユーザーモード コンポーネントを使っていない限り、Windows ドライバーとして再コンパイルできます。 レガシ WDM ドライバーと KMDF ドライバーは、Windows 10 をターゲットとする Windows ドライバーとして再コンパイルでき、変換の必要はありません。 これらのドライバーは変換せずにコンパイルできますが、ドライバーが Windows ドライバーの要件をすべて満たしているとは限りません。 Windows ドライバーの要件の詳細については、「Windows ドライバーの開発の概要」を参照してください。
これに対し、既存のユーザーモード ドライバーを Windows ドライバーとしてコンパイルするには、変更が必要になることがあります。 具体的には、ドライバー パッケージには UWP の外部に依存関係があってはなりません。 たとえば、Win32 API の一部のみが UWP の一部です。
既存のドライバー プロジェクトの Windows ドライバー プロジェクトへの変換
- Visual Studio 2019 で、既存のドライバー プロジェクトを開きます。
- ソリューション エクスプローラー ペインで、ソリューションを長押し (または右クリック) し、[構成マネージャー] を選びます。 ターゲット オペレーティング システムを Windows 10 に設定します。
- ドライバー プロジェクトを長押し (または右クリック) し、[プロパティ] を選びます。 [構成プロパティ] の [ドライバー] で、[ターゲット プラットフォーム] が [Windows ドライバー] に設定されていることを確認します。 Windows 10 デスクトップ エディションで実行されるドライバーをビルドするには、[デスクトップ] を選択します。
- ドライバーをビルドします。 リンカーエラーが表示される場合があります。
- エラー ログを調べてエラーを 1 つずつ修正します。 使用可能な代替 API については、ドキュメントの個々のリファレンス ページを参照してください。 代替品が入手できない場合は、ドライバーを再設計する必要がある場合があります。
Microsoft Visual Studio での新しい Windows ドライバー プロジェクトの作成
テンプレートから新しいドライバーを作成します ([ファイル] -> [新しいプロジェクト] -> [新しいプロジェクトの作成] -> [プロジェクトの種類] -> [ドライバー] -> 目的のテンプレートの順に選択します)。
プロジェクトの作成後、ソリューション エクスプローラー ペインでソリューションを長押し (または右クリック) し、[構成マネージャー] を選びします。 [アクティブ ソリューション構成] を目的のターゲット Windows バージョンに設定し、[アクティブ ソリューション プラットフォーム] を Win32 または x64 に設定します。 一覧に Arm が表示されない場合に Arm 用にビルドするには、<[新規作成...]> を選択します。
Windows 10 を選ぶと、ドライバー モデルの既定値は [ユニバーサル] になります。
手動でドライバー モデルを変更するには、ドライバー プロジェクトを長押し (または右クリック) し、[プロパティ] を選びます。 [構成プロパティ] - [>ドライバー設定] - [>全般] で、[ターゲット プラットフォーム] エントリを見つけます。 [Windows ドライバー] を選択します。 Microsoft Visual Studio はこの設定を使用して、リンクするライブラリを決定します。
注 Windows 10 バージョン 1809 より前の Windows バージョン用の Windows ドライバーをビルドすることはできません。
プロバイダーを指定するには、.inf ファイルを変更する必要がある場合があります。プロバイダーは、後で INF ファイルの Strings セクションで展開される %ManufacturingName% トークンとして指定されます。 次に例を示します。
Provider="Contoso"これで、ソリューションを構築できるようになりました。 Visual Studio は必要なライブラリにリンクし、.cat ファイル、.inf ファイル、およびドライバー バイナリを生成します。
Microsoft Visual Studio での新しいユニバーサル アプリケーションまたは DLL プロジェクトの作成
- テンプレートから新しいドライバーを作成し ([ファイル] -> [新しいプロジェクト] -> [新しいプロジェクトの作成] -> [プロジェクトの種類] -> [ドライバー] -> 目的のテンプレートの順に選択)、[Empty Desktop Application for Drivers (Universal)]\(ドライバー用の空のデスクトップ アプリケーション (ユニバーサル)\) または [Empty Dll for Drivers (Universal)]\(ドライバー用の空の DLL (ユニバーサル)\) を選択します。
- プロジェクトの作成後、ソリューション エクスプローラー ペインでソリューションを長押し (または右クリック) し、[構成マネージャー] を選びします。 [アクティブ ソリューション構成] を目的のターゲット Windows バージョンに設定し、[アクティブ ソリューション プラットフォーム] を Win32 または x64 に設定します。 一覧に Arm が表示されない場合に Arm 用にビルドするには、<[新規作成...]> を選択します。 Windows 10 を選択した場合、アプリケーション モデルはデフォルトでユニバーサルになります。 手動でターゲット プラットフォームを変更するには、ドライバー プロジェクトを長押し (または右クリック) し、[プロパティ] を選びます。 [構成プロパティ] - [>ドライバー設定] - [>全般] で、[ターゲット プラットフォーム] エントリを見つけます。
- ソリューションをビルドします。
ドライバーをビルドするときに Visual Studio で使用できる構成設定については、「WDK を使用したドライバーのビルド」を参照してください。