Top | 最新情報 | 会社概要 | セミナー | 製品 | 開発者向 | サポート | download | 問い合せ | English | ||||
Windows | Linux | NETMF | H8マイコン | FPGA | SHSMOD | E-Kit | WDDDC | techmemo |
Windowsデバイスドライバー 開発のためのヒント |
||
|
||
Windows 11の使いこなし 「Insider Preview からFeedback Hubまで」 VideoWindows11 23H2 開発現場使えるマニアックな情報 VideoWindows 11 対応ドライバー開発環境のインストールと使い方Windows 11 対応ドライバーHLK テスト環境のインストール |
||
Windows 11 時代の デバイスドライバー 開発情報Visual Studio 2022 対応Windowsドライバー開発環境インストール手順Windows USB View のインストール手順Visual Studio 2019 と以前のWDKは、以前のバージョン用のドライバーや古いサンプルドライバーのビルドに利用できます。 開発ツール最初に訪問するサイト: Windows Hardware Developer Centerドライバー開発ツールがダウンロードできる上記のサイトです。忘れてしまった場合は、WDK で検索できます。Windows Driver Kit (WDK)の 今すぐダウンロード をクリックすると最新ツールが入手できる Windows Driver Kit (WDK) のダウンロード ページに移動します。 インストール開発用ホストマシン(PC)に、@Visual Studio、AWDKの順番にインストールします。開発用ホストPCとしては、サポート対象の全 Windows OSが利用できますが、最新のWDK環境で プロビジョニングが使えるのはWindows 10 以降です。Visual Studioのインストールでは次の項目を選択してインストールします。
開発環境の構築基本的にホストとターゲットの2台以上の物理マシンを用意して開発します。異なるOSバージョンやハードウェアでの動作を確認するため、あるいは異なるバージョンのビルドツールの動作を確認するため、ホストやターゲットを複数台用意して使用することは良くあります。 Windows 10では OS の新リリースが半年毎になり、WDKとそれを組み込むVisual Studio のUpdateも頻繁に行われる様になりましたが、常に開発環境は最新版の環境だけを使用する必要があります。例えば現時点では前述の Windows 11 WDK による開発環境 だけで、Windows 7以降とWindows Server 2008 SP1 以降の全OS用のドライバーが開発可能でます。 ドライバー開発で使用するマシンは、ネットワークごと一般ネットワークから隔離して、ウイルスチェックソフトウェアやセキュリティソフトウェアは一切使用しません。Windows ドライバー開発開発の妨げになる可能性があるからです。一方でカーネルモードドライバー等のデバッグ時には、インターネット経由でMicrosoftのシンボルサーバーに接続する事がほぼ必須なため、ファイアウォール経由でインターネットに接続する環境を用意します。例えば次の様に、一般の業務環境とは切り離したドライバー開発環境を構築する必要があります。 ホストマシンドライバーをビルドして、開発中のドライバーのターゲットでの実行状況をモニター、デバッグするマシンです。原則として最新のWindows をインストールして、さらにWindows Updateで最新版にしておきます。開発に集中するために、Windows Updateを一時中断して運用する場合があります。Windows ドライバー開発は(ビルド環境と実行環境が異なる)クロス開発が大前提のため、開発対象のドライバーをホストマシンにインストールして実行することは、通常行いません。 ターゲットマシン開発対象のドライバーを実行する環境です。動作対象のWindows をインストールして、原則としてWindows Updateで最新版にしておきます。開発に集中するために、Windows Updateを一時中断する場合があります。基本的には開発対象のドライバーに関係無いデバイス、ドライバーやアプリケーションは一切インストールしません。これは開発専用マシンなので、開発中のドライバーをテストする以外の目的には使用しません。ユーザーモードドライバーの開発では、ホストマシンにドライバーをインストールして実行・デバッグすることも可能ですが、お勧めしません。 ソースコードとビルド新規に開発するドライバーの元となるソースコードを入手する方法は一般に、次の三種類の方法があります。
ドライバーソースコードの編集とビルドは通常、Visual Studio を使用して行います。Visual Studio を使用せずに、Windows Driver Kit (WDK) のダウンロード ページからダウンロードできる EWDK (Enterprise WDK for Windows) を使用する方法もありますが、ドライバービルド時の設定やソースコードデバッグが面倒なためお勧めしません。 デバッグデバッガーはWDKとともにインストールされるカーネルデバッガー WinDBG を使用します。ユーザーモードドライバーのデバッグでは、WinDBG のほかに Visual Studio の C++ デバッグ機能を使用することもできます。ドライバーを Visual Studio でビルドする場合、WinDBG は Visual Studio に組み込まれて動作します。Windows 8 からドライバーのビルド、LAN経由でのターゲットへのデプロイ、LAN接続経由でのカーネルデバッガーの起動がF5キーだけでも行えるようになりました。この様な環境の構築を、プロビジョニングと呼びます。プロビジョニングに関しては以下のリンクを参照してください。リンク先のURLに wdk-8-1 の字が含まれますが、この説明が掲載されたのがWindows 8.1 WDKだったためなので、気にする必要はありません。またWinDBGは大昔からと同様に、Visual Studio を使用せずに、単独で立ち上げて利用することも可能です。 ドライバーの展開およびテストのためのコンピューターのプロビジョニング (WDK 10) バージョンと互換性Windowsは古くから、OSとしてドライバーの互換性を重視して新バージョンが開発されて来ています。つまり動作させたいと思うOSバージョンの中で、一番古いバージョン用に、ドライバーをビルドしておけば、多くの場合同じバイナリーまたは同じソースコードが以降のWindowsでも利用できます。(一部例外はあります) WDFドライバーではバージョン番号が明確に規定されているため、この後方互換性を利用することで、用意するドライバーバイナリー・パッケージを減らすか一つにすることが可能です。ただしWindows 7, Windows 8とWindows 10ではドライバー署名の制約が異なるので、その点には注意する必要があります。次のリンクにWDF (KMDFとUMDF) とOSの関係が記載されています。 KMDF のバージョンの履歴UMDF バージョン履歴ビルドするドライバーの動作対象WDFは、次の様にVisual Studioのプロパティで設定できます。 ビルドするドライバーの動作対象OSの設定も、次の様に容易です。Windows 7 用ドライバーのビルドに Windows 7 WDKをインストールする必要はありません。常に最新状態にアップデートしたVisual Studioと最新の WDK だけを使用します。 次の様に WDM ドライバー開発用の設定もできます。 Windows 10以降では通常、 Universal のTarget Platformを指定しますが、Windows 8.1以前のDDIやINF等を流用する場合には、Windows DriverのPlatformも設定可能です。 ユニバーサルドライバーユニバーサルドライバーは、Windows 10のリリースの際に Windows 10 IoT やSurface Hub, HoloLens 等とドライバーアーキテクチャーを統一させるために、導入されたものです。いくつかの古いWindows時代の機能を廃して、新しく整理されたものなので、ユニバーサルドライバーが動作しないWindows 8.1 以前の環境で使う予定が無ければ積極的に対応し、また利用するべきです。 ユニバーサルドライバーは、ユニバーサルなアーキテクチャでは無いため、x86, x64, ARM, ARM64 の各バイナリーのドライバーパッケージ毎にダッシュボードで申請して 構成証明署名 を付加する必要があります。 |
||
|
||
ハードウェア制御アプリケーションデバイスドライバーズを開発せずにハードウェアをアプリケーションで制御する方法は多数あります。 |
||
|
||
フォーラムと掲示板日本語英語 |
||
|
||
参考ページWindows ドライバーの知識と使い方Windows USBView.exe のインストールWindows Hardware and Driver Developer Blog (英語)Japan WDK Support Blog (アーカイブ)Windows ハードウェア認定ブログ (アーカイブ)Windows 10用ドライバー署名(2019年版)ハードウェア開発者向けのサポートとコミュニティ (やや古い)CQ出版 特集 Windows 7 時代のデバイス・ドライバ開発CQ出版 連載 Windows Vista時代のデバイスドライバ開発 各回の概要BCDedit 簡単操作法Windows 8 Driver SampleMSDNの価格MSDNでダウンロードできるソフトウェア |
||
|
||
ahidaka.github.io index | ||
|
||
株式会社デバイスドライバーズ |
2024年3月15日更新 |