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

デバイスドライバー

デバイスドライバー

Visual Studio Subscription の変更

先日、Microsoft サポートコミュニティの質問、「Visual Studio 2010のダウンロード方法を教えてください。」を調べていると、重要なことに気づいた。

何と Windows XP 以前のWindows オペレーティングシステムがダウンロード入手出来なくなっているのだ。この異常に気づいて、いろいろと調べてみた。

Windows ドライバーはついに64bit 専用に!

つい最近、新しい WDK (Windows Driver Kit) について、次の驚くべきことに気づいた。

  • Windows 10 より前のドライバー開発をサポートしない。

  • 32 bit ドライバーの開発をサポートしない。

インターフェース誌 Windows 11 時代のデバイスドライバ開発連載開始 記事で記載の通り、久しぶりに Windows ドライバー開発の記事を連載形式で書いている。そもそもの依頼は去年、2022年のことだったので、対象はWindows 11 21H2で Visual Studio 2019を使用して、サポート対象の全てのアーキテクチャ用のドライバーが開発出来る前提で、元の記事を書いていた。諸般の事情で、連載開始が延び延びになり、対象がWindows 11 22H2に変わり、Visual Studio 2022を使うことにしたのだが、自分が去年書いた記事を確認すると、様子がいろいろと違い、おかしいことに気づいた。

そして Windows ドライバー開発で著名な米国OSR社のページで、以下の記述を発見した。

https://www.osr.com/blog/2022/09/21/the-windows-driver-kit-and-visual-studio-2022/

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月にあって参加して来た。参加者はなんらかのアプリケーションを公開しなくてはならないので、夢は大きいものの中身がしょぼくて申し訳無いがここに公開する。



コンテンツ配信