Warum wechselt mein Computer jedes Mal auf "Neues USB-Gerät", wenn ich eines an einen anderen Anschluss anschließe?

47

Nehmen wir an, ich habe eine Maus. Ich schließe diese Maus an Steckplatz 1 von 4 eines Computers an. Es wird durch das neue Gerät erkannt und das alles, was in Ordnung ist. Aber wenn ich später mit der gleichen Maus zurückkomme und sie in Steckplatz 3 stecke, wird die Erkennung erneut durchgeführt! Warum ist das?

RCIX
quelle
3
Und was können wir tun, um das Problem zu beheben?
Colonel Panic

Antworten:

61

Nach Raymond Chen :

Warum erkennt Windows mein USB-Gerät nicht als dasselbe Gerät, wenn ich es an einen anderen Anschluss anschließe?

Möglicherweise haben Sie bemerkt, dass Windows ein USB-Gerät erkennt und konfiguriert, wenn Sie es an den Computer anschließen. Wenn Sie es dann herausziehen und an einen anderen USB-Anschluss anschließen, bekommt Windows einen Anfall von Amnesie und denkt, dass es sich um ein völlig anderes Gerät handelt, anstatt die Einstellungen zu verwenden, die beim letzten Anschließen angewendet wurden. Warum das?

Die USB-Geräteleute erklärten, dass dies passiert, wenn dem Gerät eine USB-Seriennummer fehlt.

Seriennummern sind bei USB-Geräten optional. Wenn das Gerät über einen verfügt, erkennt Windows das Gerät, unabhängig davon, an welchen USB-Anschluss Sie es anschließen. Wenn jedoch keine Seriennummer vorhanden ist, behandelt Windows jedes Erscheinungsbild an einem anderen USB-Anschluss wie ein neues Gerät.

(Ich erinnere mich, dass ein großer Hersteller von USB-Geräten die Funktionsweise von Seriennummern nicht genau verstand. Sie gaben allen Geräten Seriennummern, das ist großartig, aber alle hatten die gleiche Seriennummer. Aufregende Dinge passierten, wenn Sie zwei davon einstecken Geräte gleichzeitig an einen Computer anschließen.)

Aber warum behandelt Windows es als ein anderes Gerät, wenn es keine Seriennummer hat und an einem anderen Port angezeigt wird? Warum kann es nicht einfach sagen: "Oh, da drüben an einem anderen Hafen."

Denn das erzeugt ein zufälliges Verhalten, sobald Sie zwei solche Geräte anschließen. Abhängig von der Reihenfolge, in der die Geräte per Plug-and-Play aufgelistet werden, werden die beiden Einstellungssätze bei jedem Start scheinbar zufällig zugewiesen. Heute stimmen die Einstellungen in die eine Richtung überein, aber morgen, wenn die Geräte in der anderen Reihenfolge aufgelistet werden, werden die Einstellungen ausgetauscht. (Ähnlich verblüffend ist das Verhalten, wenn Sie die Geräte in anderer Reihenfolge anschließen.)

Mit anderen Worten: Die Dinge saugen, weil (1) die Dinge bereits in einem schlechten Zustand waren - dies wäre kein Problem gewesen, wenn das Gerät eine richtige Seriennummer gehabt hätte - und (2) sobald Sie sich in diesem schlechten Zustand befinden, ist die Alternative mehr zum Kotzen . Der USB-Stack versucht nur, das Beste aus einer schlechten Situation zu machen, ohne sie zu verschlimmern.

jasonh
quelle
16
Eine Sache, die ich nicht verstehe, ist, warum es Gerätetreiber noch einmal neu installieren muss. Werden jetzt separate Kopien der Treiber für dasselbe Gerät an jedem Port verwaltet?
Agnel Kurian
1
Ich gehe davon aus, dass es nur darum geht, vorhandene Treiber mit der neuen Anschlussbezeichnung zu verknüpfen.
Brian White
1
@BrianWhite Es wird der gesamte Download- und Konfigurationsprozess durchlaufen. Sie können es sehen, indem Sie auf die Benachrichtigung in der Taskleiste klicken
Cool Blue
1
Oh, ich habe es oft gesehen. In diesem Dialogfeld ist es jedoch schwierig zu erkennen, ob es sich tatsächlich um das Abrufen neuer Daten aus dem Internet handelt oder nur um die Verwendung lokaler Dateien (aber allgemeiner Dialogtexte) oder etwas dazwischen.
Brian White
Gibt es eine Möglichkeit, einem USB-Gerät selbst eine Seriennummer zu geben? Oder ist das nur in der Fertigung möglich?
TMH
2

Windows (da Sie nicht angeben, dass Sie das Betriebssystem verwenden) ordnet ein Gerät dem Anschluss zu, an den es angeschlossen ist. Daher wird "USB-FESTPLATTE A in Anschluss X" als von "USB-FESTPLATTE A in" verschieden angesehen "Port Y" und verknüpft die Treiber und Registrierungseinträge entsprechend.

Wenn Sie beim Anzeigen des Geräte-Managers die Option "Nicht angeschlossene Geräte anzeigen" verwenden, wird das Gerät an alle Anschlüsse angeschlossen, an die es jemals angeschlossen wurde, aber ausgegraut, da es sich derzeit nicht in ihnen befindet. Wenn Sie das Gerät an einen dieser Ports anschließen, aktiviert Windows nur diese Treiberinstanz. Wenn Sie es an einen anderen Port anschließen, muss es eine neue Treiberinstanz für diesen Port definieren, bevor es aktiviert wird (dies ist der Prozess, den Sie als Benutzer sehen angezeigt als "neues Gerät hinzufügen".

Auf diese Weise können Sie identische Geräte gleichzeitig an verschiedene Ports anschließen. Es gibt andere Möglichkeiten, dies zu erreichen, wobei der Endbenutzer kaum oder gar keinen Unterschied zu der vom Betriebssystem verwendeten Technik hat. Windows wählt jedoch diese Methode, um dies zu arrangieren.

David Spillett
quelle
4
Nah, aber nicht ganz. Windows erkennt dasselbe Gerät über verschiedene Ports hinweg, sofern es genau dieses Gerät nachverfolgen kann. Dazu muss das Gerät eine Seriennummer angeben.
Jasonh
4
Datenträger haben in der Regel eine Seriennummer, die sich auf dem Datenträger befindet und nach Format sortiert ist. Sogar die wirklich billigen Keyfob-Geräte gehören deshalb zu den besten USB-Geräten. Mäuse, Tastaturen, Joysticks und andere billige Geräte sind in der Regel die schlimmsten Straftäter. Ein echtes Ärgernis ist ein serieller USB-zu-RS-232-Adapter ohne Seriennummer. Es wird jedes Mal, wenn es versehentlich an einen neuen Anschluss verschoben wird, ein neuer COM-Anschlussname zugewiesen. Kein Spaß.
RBerteig