第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マネージャの変わりをします


目次に戻る