汎用デバイスのUSBメモリに、Windowsがドライバをインストールし直すのは何故?


マスストレージクラスに対応していれば、製品毎のドライバは不要なのでは。各種解説でもWindowsでは製品毎にドライバを用意しなくても使えるなどと書かれています。
しかし、実際の動作を見ていると、そのパソコンで初めて使うUSBメモリ製品を挿すと、「新しいデバイスが・・・」から始まり、わざわざドライバのインストールが行われているようです。汎用ドライバがロードされていれば、どのメーカーのどのUSBメモリを使っても読み書きが問題無く行える筈だと思うのですが、何故そうなっていないのでしょうか?使われているチップなどが違っても「それはそのUSBメモリ内部で吸収する」筈では。個別の製品毎のドライバインストールを止めることは出来ないでしょうか?
Mac OS Xでは恐らくAppleが提供している汎用ドライバひとつで全てのUSBメモリを取り扱えているように見えます。

推測や想像ではなくある程度根拠がある説明をして頂けた方、実現出来る対処法などを教えて頂いた方にはポイントを進呈しますので、何卒よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/31 08:19:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:nikodesu No.1

回答回数1025ベストアンサー獲得回数39

ポイント500pt

http://ja.wikipedia.org/wiki/Universal_Serial_Bus

USBでは、周辺機器の機能によってグループ分けされた デバイス・クラスと呼ばれる仕様群が定義されている。それぞれのクラス仕様(クラス仕様によってはサブクラスの仕様)に従って作成されたデバイスには統一した制御インターフェイスが用意され、クラス仕様に準拠した機器類は、クラス・ドライバーと呼ばれる共通のデバイスドライバ・ソフトウェアによって動作させることができるため、同一クラスであれば製品ごとに個別のドライバ・ソフトウェアを作る必要がなくなっている。例えば、多くのUSBメモリはマスストレージ・クラスというクラスに属しており、OS側がマスストレージ・クラス対応のクラス・ドライバを用意していれば、USBメモリがクラス仕様に準拠する限り、新たにドライバをインストールする必要がなく、初めて接続してもすぐに動作する。ただし、実際にはデバイス側の仕様違反、特定ホストの動作に依存したデバイスの実装、仕様上の曖昧さによるぶれなどにより、共通のクラス・ドライバでは動作しない、ドライバ内に不具合回避処理が盛り込まれる、専用ドライバが提供される、という場合もある。

USB規格ではホストコントローラの規格を定義しておらず、以下のホストコントローラ規格はUSBの仕様外である。複数のホストコントローラ規格がある。これらは制御方法が異なるため、それぞれ別のドライバが必要である。ただし同一ホストコントローラ規格内では共通のものが通常使える。

その他の回答1件)

id:nikodesu No.1

回答回数1025ベストアンサー獲得回数39ここでベストアンサー

ポイント500pt

http://ja.wikipedia.org/wiki/Universal_Serial_Bus

USBでは、周辺機器の機能によってグループ分けされた デバイス・クラスと呼ばれる仕様群が定義されている。それぞれのクラス仕様(クラス仕様によってはサブクラスの仕様)に従って作成されたデバイスには統一した制御インターフェイスが用意され、クラス仕様に準拠した機器類は、クラス・ドライバーと呼ばれる共通のデバイスドライバ・ソフトウェアによって動作させることができるため、同一クラスであれば製品ごとに個別のドライバ・ソフトウェアを作る必要がなくなっている。例えば、多くのUSBメモリはマスストレージ・クラスというクラスに属しており、OS側がマスストレージ・クラス対応のクラス・ドライバを用意していれば、USBメモリがクラス仕様に準拠する限り、新たにドライバをインストールする必要がなく、初めて接続してもすぐに動作する。ただし、実際にはデバイス側の仕様違反、特定ホストの動作に依存したデバイスの実装、仕様上の曖昧さによるぶれなどにより、共通のクラス・ドライバでは動作しない、ドライバ内に不具合回避処理が盛り込まれる、専用ドライバが提供される、という場合もある。

USB規格ではホストコントローラの規格を定義しておらず、以下のホストコントローラ規格はUSBの仕様外である。複数のホストコントローラ規格がある。これらは制御方法が異なるため、それぞれ別のドライバが必要である。ただし同一ホストコントローラ規格内では共通のものが通常使える。

id:SweetSmile1978 No.2

回答回数199ベストアンサー獲得回数31

ポイント250pt

Windows のデバイス認識動作の詳細に詳しいわけではないので
参考になりようなURLだけ示しておきます。

http://social.msdn.microsoft.com/Forums/ja/windowsdevicedriverja/thread/6bec6ec2-3be7-4799-b394-b1e62ecf97ae

ちなみに、ドライバのインストールといっても
使用されるドライバのファイル自体はどれも同じモノを使うので
インストールされることによるディスク容量の無駄はないはずです。
レジストリが少し大きくなるぐらいかな。

  • id:seble
    はっきりとは分かっていないのですが、物理メモリ毎にレジストリに登録されるようです。
    どこぞのメーカーのシリアルがどうの、、みたいに。
    (レジストリを開くと、ドライブレターと一緒にズラっと並んでいます。ああ、そういえば前にこんな小容量のメモリも使ってたな、とか)
    usbコネクタを変えただけでもいちいちドライバのインストが始まる時もあります。
    ファイル自動再生の設定とか、つまんない事を沢山登録しているみたいですね。
    同じメモリを同じコネクタへ挿した場合はすんなり行きます。w
  • id:Dilemma
    sebleさん、コメントありがとうございました。
    レジストリまで関係しているとは知りませんでした。参考になりました。
    コメントの方だったのでポイントを差し上げられなくて申し訳ありません。
    参考になりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません