第2版2000年9月16日
初版2000年6月22日
Windows2000とWindows95/98の違い(デバイスドライバ)
Windows2000とWindows95/98では、仕様上デバイスドライバに違いがあります。
<見た目の動作上の違い>
Windows95/98 : デバイスドライバがフリーズしてしまうとWindowsもフリーズしてしまう
Windows2000 : デバイスドライバがフリーズしてもWindowsそのものは動作を続ける
<理由>
[Windows95/98]
Windows95/98デバイスドライバ(仮想デバイスドライバ Vxd)は、マルチタスクで動けない仕様になっています
仮想デバイスドライバが動いている間は、Windowsそのもの(カーネル)や他のデバイストライバ、
他のタスク(プログラム等)全て停止してしまいます (シングルタスクOSと変わんない状態になってるわけです)。
仮想デバイスドライバが何らかの理由(装置故障、 バグ等)でフリーズしてしまうと、全てがとまってしまうわけです。
[Windows2000(NTも同様)]
Windows2000デバイスドライバは、Windows2000により複数同時に動けるよう管理されています
(WDM:Windows Drivers Model)。デバイスドライバが何らかの原因でフリーズしても、他の部分
は動作しているのでWindows全体がとまらないですみます。
WDM詳細:
「I/Oマネジャ」というものが、各デバイスへの要求・応答待ち行列を管理しています。
I/Oマネジャは非同期データ転送により全WDMデバイスドライバを平行動作させています。
デバイスドライバは「(上位で論理的制御を行う)クラス・ドライバ」と「(ハードウェアを制御する)ミニドライバ」に
けられています。クラスドライバの多くは(USB・IEEE1394・キーボードなど)マイクロソフトが用意しています。
I/Oマネジャ→クラスドライバ→I/Oマネジャ→ミニドライバ というふうに動作します。
なお、クラスドライバ・ミニドライバは、機器の種類により「デバイスクラス(デバイスミニ)ドライバ」と「バスクラス(バスミニ)ドライバ」
にわかれます。
Windows2000が備えるクラスドライバ 例
[デバイスクラスドライバ]
(1)HID(Human
Interface Device キーボード・マウス 等)
(2)オーディオ・クラス (サウンド 等)
(3)ストリーミングクラス (DVD MPEG−2デコード等)
(4)コミュニケーションクラス(USB接続TA 等)
(5)ストレージクラス (SBP−2 (Serial Bus Protocol2 SCSIコマンドがベースとなっている) 等)
(6)DVフォーマット デジタルビデオカメラ用 クラスドライバ
.etc
[バスクラスドライバ]
(1) IEEE1394 用
(2) USB用
[WindowsME]
従来の仮想デバイスドライバのほかに、WDMデバイスドライバを利用するための仮想デバイスドライバ
(NTKERN.VxD)を備えます。WDMデバイスドライバを使う限りは、デバイスドライバをマルチタスクで動かせます。
(他の仮想デバイスドライバが動いているとWindows95/98とかわらないということでもあります)
NTKERN.VxDは、Windows2000でのI/Oマネージャの変わりをします