Dlaczego mój komputer przechodzi na „Nowe urządzenie USB” za każdym razem, gdy podłączam jedno do innego portu?

47

Powiedzmy, że mam mysz. Podłączam tę mysz do gniazda 1 z 4 na komputerze. Przechodzi przez nowe wykryte urządzenie i to wszystko, co jest w porządku. Ale jeśli wrócę później z tą samą myszą i podłączę ją do powiedzmy gniazda 3, wykrywanie rozpocznie się od nowa! Dlaczego to?

RCIX
źródło
3
Co możemy zrobić, aby to naprawić?
Pułkownik Panic

Odpowiedzi:

61

Według Raymonda Chena :

Dlaczego system Windows nie rozpoznaje mojego urządzenia USB jako tego samego urządzenia, jeśli podłączę je do innego portu?

Być może zauważyłeś, że jeśli weźmiesz urządzenie USB i podłączysz je do komputera, system Windows rozpozna je i skonfiguruje. Następnie, jeśli odłączysz go i włożysz ponownie do innego portu USB, Windows dostanie amnezji i myśli, że jest to zupełnie inne urządzenie zamiast korzystać z ustawień zastosowanych po ostatnim podłączeniu. Dlaczego?

Ludzie urządzeń USB wyjaśnili, że dzieje się tak, gdy urządzenie nie ma numeru seryjnego USB.

Numery seryjne są opcjonalne na urządzeniach USB. Jeśli urządzenie ma takie urządzenie, system Windows rozpozna je bez względu na port USB, do którego go podłączasz. Ale jeśli nie ma numeru seryjnego, system Windows traktuje każdy wygląd na innym porcie USB, jakby był nowym urządzeniem.

(Pamiętam, że jeden z głównych producentów urządzeń USB nie do końca rozumiał, jak działają numery seryjne. Podali wszystkie numery seryjne swoich urządzeń, to świetnie, ale wszyscy otrzymali ten sam numer seryjny. Ekscytujące rzeczy zdarzyły się, jeśli podłączyłeś dwa z nich urządzenia do komputera w tym samym czasie).

Ale dlaczego system Windows traktuje to urządzenie jako inne urządzenie, jeśli nie ma numeru seryjnego i pojawia się na innym porcie? Dlaczego nie może po prostu powiedzieć: „Och, jesteś tam, w innym porcie”.

Ponieważ to powoduje losowe zachowanie po podłączeniu dwóch takich urządzeń. W zależności od kolejności, w jakiej urządzenia są wyliczane przez Plug and Play, dwa zestawy ustawień zostaną przypisane pozornie losowo przy każdym uruchomieniu. Dzisiaj ustawienia są zgodne w jedną stronę, ale jutro, gdy urządzenia zostaną wyliczone w innej kolejności, ustawienia zostaną zamienione. (Podobnie zaskakujące jest zachowanie po podłączeniu urządzeń w innej kolejności).

Innymi słowy: rzeczy są do bani, ponieważ (1) rzeczy były już w złym stanie - nie byłoby problemu, gdyby urządzenie miało odpowiedni numer seryjny - i (2) gdy jesteś w tym złym stanie, alternatywa jest do bani . Stos USB stara się jak najlepiej wykorzystać złą sytuację, nie pogarszając jej.

Jason
źródło
17
Jednej rzeczy, której nie rozumiem, to dlaczego trzeba ponownie instalować sterowniki urządzeń. Czy będzie teraz utrzymywać osobne kopie sterowników dla tego samego urządzenia na każdym porcie?
Agnel Kurian,
1
Zgaduję, że po prostu łączy istniejące sterowniki z nowym oznaczeniem portu.
Brian White,
1
@BrianWhite przechodzi przez cały proces pobierania i konfiguracji. Możesz go obejrzeć, klikając powiadomienie na pasku zadań
Cool Blue
1
Och, oglądałem to wiele razy. Trudno powiedzieć z tego okna dialogowego, czy faktycznie pobiera nowe dane z Internetu, czy po prostu używa plików lokalnych (ale zwykłego tekstu okna dialogowego) lub czegoś pomiędzy.
Brian White,
Czy w ogóle można nadać urządzeniu USB numer seryjny? Czy jest to coś, co można zrobić tylko na poziomie produkcyjnym?
TMH,
2

System Windows (ponieważ nie określasz systemu operacyjnego. Zakładam, że właśnie tego używasz) kojarzy urządzenie z portem, do którego jest podłączony, więc uznał, że „DYSK USB A w porcie X” różni się od „DYSKU USB A w port Y ”i odpowiednio łączy sterowniki i wpisy rejestru.

Jeśli użyjesz opcji „pokaż nieprzyłączone urządzenia” podczas przeglądania Menedżera urządzeń, zobaczysz urządzenie podłączone do wszystkich portów, w których kiedykolwiek był podłączony, ale wyszarzone, ponieważ obecnie ich nie ma. Po podłączeniu urządzenia do jednego z tych portów system Windows po prostu aktywuje to wystąpienie sterownika, po podłączeniu go do innego portu będzie musiał zdefiniować nowe wystąpienie sterownika dla tego portu przed jego aktywacją (co jest procesem, który widzisz jako użytkownik wyświetlane jako „dodanie nowego urządzenia”.

Pozwala to na jednoczesne podłączenie identycznych urządzeń do różnych portów. Istnieją inne sposoby osiągnięcia tego celu, z niewielką lub żadną praktyczną różnicą dla użytkownika końcowego, jaką technikę stosuje system operacyjny, ale w ten sposób Windows decyduje się to zorganizować.

David Spillett
źródło
4
Blisko, ale nie do końca. System Windows rozpoznaje to samo urządzenie na różnych portach, o ile może śledzić dokładnie to urządzenie. Aby to zrobić, urządzenie musi podać numer seryjny.
jasonh
4
Dyski mają zazwyczaj numer seryjny, jest umieszczony na samym nośniku i umieszczony tam według formatu. Z tego powodu nawet naprawdę tanie rzeczy z napędami na piloty należą do najlepiej zachowanych ze wszystkich urządzeń USB. Myszy, klawiatury, joysticki i inne tanie urządzenia są zwykle najgorszymi przestępcami. Prawdziwą irytacją jest adapter szeregowy USB na RS-232 bez numeru seryjnego. Zostanie przypisany do nowej nazwy portu COM za każdym razem, gdy zostanie przypadkowo przeniesiony do nowego portu. Nie śmieszne.
RBerteig,