回答:
レイモンド・チェンによると:
別のポートに接続した場合、WindowsがUSBデバイスを同じデバイスとして認識しないのはなぜですか?
USBデバイスを取り出してコンピューターに接続すると、Windowsがそれを認識して構成することに気づいたかもしれません。その後、プラグを抜いて別のUSBポートに再接続すると、Windowsは記憶喪失を経験し、前回接続したときに適用された設定を使用するのではなく、まったく別のデバイスであると見なします。何故ですか?
USBデバイスの人々は、デバイスにUSBシリアル番号がない場合にこれが起こると説明しました。
USBデバイスでは、シリアル番号はオプションです。デバイスにデバイスがある場合、どのUSBポートに接続しても、Windowsはデバイスを認識します。ただし、シリアル番号がない場合、Windowsは異なるUSBポート上の各外観を、あたかも新しいデバイスであるかのように扱います。
(USBデバイスの大手メーカーは、シリアル番号の仕組みをよく理解していなかったことを覚えています。彼らはすべてのデバイスにシリアル番号を付けましたが、それは素晴らしいことですが、すべて同じシリアル番号を取得しました。デバイスを同時にコンピューターに接続します。)
しかし、シリアル番号がなく、別のポートに表示される場合、Windowsはなぜそれを別のデバイスとして扱うのですか?「ああ、あそこにいるよ、あそこの別の港に」と言えないのはなぜですか。
そのようなデバイスを2つ接続すると、ランダムな動作が発生するためです。デバイスがプラグアンドプレイによって列挙される順序に応じて、2つの設定のセットがブートごとにランダムに割り当てられます。今日、設定は一方向に一致しますが、明日、デバイスが他の順序で列挙されると、設定が交換されます。(デバイスを異なる順序で接続すると、同様の不可解な動作が発生します。)
言い換えると、(1)物事はすでに悪い形になっているためです-デバイスに適切なシリアル番号があれば問題ありませんでした-(2)この悪い状態になったら、代替物はもっと悪い。USBスタックは、悪化することなく、悪い状況を最大限に活用しようとしています。
Windows(OSとは言いませんが、これは使用していると仮定します)は、デバイスを接続先のポートに関連付けます。そのため、「ポートXのUSBディスクA」は、「USBディスクAポートY」を選択すると、ドライバーとレジストリエントリがリンクされます。
デバイスマネージャーを表示するときに「未接続のデバイスを表示」オプションを使用すると、デバイスが接続されているすべてのポートに接続されているが、現在デバイスにないためグレー表示されます。デバイスをこれらのポートの1つに接続すると、Windowsはそのドライバーインスタンスをアクティブにします。別のポートに接続すると、アクティブにする前にそのポートの新しいドライバーインスタンスを定義する必要があります(ユーザーとして表示されるプロセスです) 「新しいデバイスを追加しています」と表示されます。
これにより、同時に動作する異なるポートに同じデバイスを接続する必要があります。これを達成する他の方法があり、OSが使用する技術をエンドユーザーにほとんどまたはまったく実際的な違いはありませんが、それはWindowsがそれを配置する方法です。