Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

デバイスドライバー

デバイスドライバー

Windows ドライバー開発環境

どの様な開発環境で、どのOS用のWindows デバイスドライバーを開発するか?という話である。非常に簡単なことだが、世の中にはそのための作業をしようとしているのにも関わらず、また目立つ然るべきところちゃんと書いてあるにも関わらず、それを知らない人が多い様子なので改めて書いてみる。

答えを先に書くと、今も、そしてこれから先も当分の間は、Visual Studio 2019Windows 11 WDK だけを使うことで、あらゆる種類のドライバーが開発できる。またそれ以外は使うべきでは無い。

例えば先日あった次の間違いがある。teratail の次の質問だ。

古いUSBドライバーをWindows 10 で使いたい

Windows 7のサポート期限 が近づいて来て、ここ最近聞く様になったのが古いOS用のUSBドライバーを Windows 10 で使いたいという話だ。

どれぐらい古いかと言うと、Windows 2000 とか Windows XP だったりする。当然 32bit Only、そして使いたいのは最新の Windows 10 64bit版。ご存知の方も多いと思うが、昔の Windows 32bit版のドライバーは、結構そのまま Windows 7 (32bit)にインストールできて動作してしまう。しかし Windows 10 のカーネルモードで動作する一般的な USB ドライバーは、 KMCS (Kernel Mode Code Signing) ポリシーや、sha2署名UEFIセキュアブート での厳格な署名制限があり、単純に古い WDM (WDFでも同じ) のUSBドライバーを再ビルドしただけでは、問題無く動作するとは言えない。そこでその大昔のドライバーを Windows 10用 に対応させるためにどの様な方法があるかを、一から開発し直すことも含めて整理した。

Windows 10用ドライバー署名(2019年版)

新しいダッシュボードの運用が始まり、Windows 10 のドライバー署名方法の方法が変わって約3年経った。今でも時折質問が来るので、整理して解説する。

前提:証明書と署名

混同している方が結構多いため、大前提として再度確認するわけだが、証明書(Cerificate)署名(SignatureまたはSigning) は異なるものである。

一般的に証明書は、メーカーやユーザーが証明書発行機関(会社)から調達する。通常は1年程度の有効期限がある。電子的なものだが、例えば後述の EV証明書(Extended Validation 証明書)は、次の写真の様なUSBドングルに入っている。

再発行不可なので、無くしてはいけない。時代に逆行している様に思えるが、物理デバイスが必須である。詳しい事情は良く知らないが、どこかの国でどこかの会社がいい加減な証明書をバラまいたためにこの様な事態になったという噂がある。

Windows 10 ユニバーサルドライバー開発

まとまった文献が少ないので、Windows 10 ユニバーサルドライバー開発について、現在分かっているところを書き止める。

ユニバーサルドライバー

ユニバーサルドライバーとはWindows 10の導入に伴って、これまでカーネル部がほぼ同じにも関わらずバラバラだったデバイスドライバー(以降ドライバー)の開発環境、ツールとソースコード、バイナリーオブジェクトを全て一つに統一したものの名称である。

現在のところ、従来のWindows Phoneに相当する Windows 10 Mobile, タブレット用のWindows 10 Mobile Enterprise と Windows 10で新開発の Windows 10 IoT Core が新たに追加される対象ターゲットだが、近い将来はXboxやHoloLensなどもサポート対象に含まれる。現在決まっているWindows 10のエディションについては、ITmediaの記事がわかり易くまとまっている。参考までに掲載する。
http://www.itmedia.co.jp/pcuser/articles/1505/14/news067.html

インターフェース誌 その他のWindowsデバイスドライバ関連記事

インターフェース誌 その他のWindowsデバイスドライバ関連記事へのリンクです。

2010年2月号
特集 Windows 7時代のデバイス・ドライバ開発
プロローグ ハードウェアとアプリケーションをつなぐ架け橋
デバイス・ドライバはなぜ必要か

第1章 Windows 7になってどんなドライバ・クラスが追加されたのか
Windows 7の新機能とWindowsドライバの基礎知識

Appendix 1 デバイス・ドライバ開発に必要な知識と情報収集方法について
デバイス・ドライバ開発技術者の心得

第2章 デバイス・ドライバを開発するにはどんなツールが必要か
ドライバ開発ツールWDKと基本的な使い方

第3章 3軸加速度&照度センサ搭載USBターゲットをWindows 7マシンに接続する
センサ&ロケーション・フレームワーク・ドライバの開発事例

Appendix 2 64ビット版Windowsではデバイス・ドライバの署名は必須!
64ビット版ドライバとコード署名手順

Windows 8のハードウェアとデバイスはどれだけ変わるか?

既報の通り、アナハイム・コンベンション・センターで開催されたイベント「build」においてWindows 8が正式発表された。一言でいうとWindows 8は既存のWindowsをOSの核としながらも、全く新しいOSだと言える。

勿論、既存の環境との互換性も考慮しているが、ユーザーインターフェースが一新し、またハードウェアに対する要求事項が大きく変わった。MetroやWinRT (Windows Runtime) でソフトウェアがどのように変わるかについては情報も多いので、この場ではハードウェアとデバイスとドライバがどのように変わるかに注目して報告する。



コードネーム Windows 8

先日各メディアで報道された、開発コードネーム Windows 8 に関する情報をまとめる。

随分前、Windows 7 の正式Launchの頃から「次はWindows 8 だ」とかいう噂は各所で聞いていたが、遂に噂が姿を現した。

詳細はBUILD Windowsで。

Windows Touch でSilverlightでイナーシア (Inertia)

「Windows Slate/Windows 7/マルチタッチ対応アプリケーション開発者会議」というのが去年12月にあって参加して来た。参加者はなんらかのアプリケーションを公開しなくてはならないので、夢は大きいものの中身がしょぼくて申し訳無いがここに公開する。



MVP Global SummitでのQ&A

少し前のことだが、2月16日から19日の間、Microsoftで毎年開催されるMVP Global Summitに参加してきた。

その年、MVP(Most Valuable Professional)をMicrosoftからカテゴリ別に受賞した技術者が、世界中からMicrosoftキャンパス(本社)に集まるイベントである。KeynoteやGeneral Sessionもあるが、メインは2日間みっちり専門分野別に開かれるTechnical Sessionだ。これは開発チームとのミーティングで、私の場合はWindowsデバイスドライバに関連したMicrosoftの開発者達から様々な最新情報を聞くだけでなく、意見を伝えたり、その場で質問に答えたりして貰えるので、毎年楽しみにしている。今回は、うちのセミナーで出てきたいくつかの質問に対する答えを貰ったので紹介する。

ユーザーモード・ドライバ tech-ed 2009 Yokohama BoF

急きょ、明日から始まるtech-ed 2009 Yokohamaで登壇することになった。

限られた時間ではあるが、BoFで少しだけWindows 7 に組み込まれている新しい機構について解説する。

Windows 7 は単なる、Windows Vistaの焼き直しやバージョン・アップ版では無い。デバイスドライバ開発の観点から見ると、Windows Vistaと同時に提供されたWDFが最初から多数動作している初めてのOSだ。特にUMDF(ユーザーモード・デバイスドライバ・フレームワーク)による、ユーザーモード・ドライバの応用と活用状況は、今後の注目に値する技術トレンドの一つだろう。

このBoFでは、色々と面白い初公開のデモも多く企画されているようなので、組込み系に興味がある来場者にはおすすめである。

コンテンツ配信