Insider's Eye: Windows 2000のデバイス ドライバを探る第2回 WDMは何が変わったのか(2/2)元麻布春男 |
![]() |
|
Windows 2000では、サウンドも含めて、デバイス ドライバはすべてカーネル モードへ移行している。したがって、DirectSoundなども含め、すべてのDirectXファンクションのサポートが可能だ。実際、出荷されるWindows 2000には、DirectX 7が搭載されている。もちろん、オーバーヘッドもWindows NT 4.0よりは減少するハズだ。
しかし、このことは同時に、前述した2つの利点と相反することになる。移植性と信頼性の低下の問題である。しかし、移植性については、もはや気にする必要がなくなってしまった。かつてサポートされたRISCプロセッサは、すでにサポートの対象外となり、事実上サポートされているプラットフォームはx86のみとなったからだ。
もう1つの利点である信頼性についてはどうだろう。デバイスドライバがカーネル モードへ移行したことは、ドライバのエラーがOSにとって致命傷となるケースが増えるということでもある。これを防止するためWindows 2000では、「ドライバの署名(Driver Signing)」という機能が提供される(すでにWindows 98 Second Editionで採用されており、Windows 2000が初めてというわけではないが)。「ドライバの署名」は、Microsoftが行っているWHQL(Windows Hardware Quality Lab)テストをパスしたドライバに付与されるデジタル署名のことだ。この署名は、デバイス ドライバのプロパティ タブで簡単に確認できる。つまり、デバイス ドライバの信頼性をWHQLでテストすることで、ドライバによる信頼性の低下を避けようというわけだ(しかし、これがうまく機能するかどうかは、WHQL次第だろう。「ドライバの署名」はあくまでも信頼性保証のためのフレームワークにすぎない)。
![]() |
|||
|
デバイス ドライバのデジタル署名の確認方法 |
|||
| デジタル署名がついたデバイス ドライバかどうかは、[デバイス マネージャ]を起動し、調べたいデバイス ドライバのプロパティを表示させることで簡単に分かる。 | |||
|
![]() |
||||||
|
[システムのプロパティ]ダイアログの[ハードウェア]タブ |
||||||
| [システムのプロパティ]の[ハードウェア]タブでは、[デバイス マネージャ]グループに[ドライバの署名]ボタンが加わり、デジタル署名のないデバイス ドライバについてのオプションが設定できるようになった。 | ||||||
|
|
|
![]() |
|
Windows 2000のドライバ署名オプション |
| [ドライバ署名オプション]では、デジタル署名が行われていないデバイス ドライバに対する扱いが設定できる。必要なら、[ファイルの署名の確認]グループの[ブロック - 署名されていないファイルのインストールを防ぐ]をチェックすることで、ユーザーが不用意にデバイス ドライバをインストールしてしまうことを禁止することが可能だ。 |
ドライバ階層化のメリット/デメリット
さて、ここまではWindows NTの標準ドライバモデルであるWindows NTカーネル モード ドライバの特徴について触れてきたが、もう1つの特徴は、ドライバ レイヤ全体が階層化されていることだ。図4はWindows 2000の一般的なドライバの階層化を示したものだが、ドライバ レイヤが何階層に及ぶかは、デバイスによって異なる。
![]() |
|
図4 Windows 2000の一般的なドライバ レイヤ |
| Windows 2000のドライバは、図のように細かく複数の階層により構成されている。これにより、システム レスポンスを良好に保つことが可能となる。 |
図5は、SCSIハードディスクにアクセスする際に利用するであろうデバイス ドライバを図にしたものだ。アプリケーションのファイルI/O要求は、カーネル モードのシステム サービスを経て、ファイル システム ドライバへと送られ、SCSI-2クラス ドライバ(ハードディスクに対するコマンドセットを定義)、SCSIポート ドライバ(SCSIコントローラに対するアクセスを定義)を経由して、ハードウェアに伝えられる。SCSI-2クラス ドライバが、ANSIの標準に基づいており、ベンダごとに対応する必要がないため、ミニドライバを必要としない(逆に特定のハードウェア固有のコマンド、ベンダ ユニークに対応する必要があれば、このクラス ドライバを置きかえればよい)のに対し、SCSI-2クラス ドライバのコマンドをホストアダプタやコントローラ チップに渡すSCSIポート ドライバは、こうしたハードウェアに依存した部分を記述したミニドライバが必要になる。
![]() |
|
図5 SCSIハードディスクへのアクセスで利用されるデバイス ドライバ |
| SCSIディスクのアクセスに利用されるデバイス ドライバを示したもの。SCSI-2クラス ドライバは、ANSI標準が定められているため、ベンダごとに個別に対応する必要がない。そのため、ほかのデバイス ドライバに比べると構造が簡単になっている。 |
では、なぜこのようにデバイス ドライバを細かく階層化するのか。最大の理由は、個々のデバイス ドライバをシンプルかつ簡素にすることで、開発を容易にすると同時に、開発の際に生じる可能性のあるバグを最大限減らすことで、信頼性を高めることだ(Windows
NTがマルチプラットフォームであった時点においては、汎用性や移植性も重要な利点だっただろう)。とにかく、「WDM」=「階層化ドライバ」ではなく、Windows
NTではそもそものドライバ アーキテクチャが階層化されていた、ということを覚えておいてほしい。ただし、何事にも例外はある。たとえば、ディスプレイドライバは、図に示したような複雑な階層化は行われていない(行われる予定もない)。それは、ディスプレイ
ドライバに求められる性能水準がきわめて高いため、階層化によるオーバーヘッドが許されないと考えられているからだ。
| INDEX | ||
| なぜWindows 2000を使わないのか | ||
| WDMは何が変わったのか(1/2) | ||
| WDMは何が変わったのか(2/2) | ||
| WDMの理想とするところ | ||
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |












