Чому мій комп'ютер переходить на "Новий USB-пристрій" кожного разу, коли я підключаю його до іншого порту?


47

Скажімо, у мене є миша. Я підключаю цю мишу до слота 1 з 4 на комп'ютері. Він проходить через новий виявлений пристрій і все це, що добре. Але якщо я повернусь пізніше з тією ж мишкою і підключу її до слота 3, він виявить все знову! Чому це?


3
І що ми можемо зробити, щоб це виправити?
Полковник Panic

Відповіді:


61

За словами Реймонда Чена :

Чому Windows не розпізнає мій USB-пристрій як той самий пристрій, якщо я підключаю його до іншого порту?

Можливо, ви помітили, що якщо ви берете USB-пристрій і підключаєте його до комп'ютера, Windows розпізнає його та налаштовує. Потім, якщо ви відключите його від мережі та повторно підключите його до іншого порту USB, Windows отримає безліч амнезії і вважає, що це зовсім інший пристрій замість того, щоб використовувати налаштування, застосовані, коли ви підключали його в останній раз. Чому так?

Люди з USB-пристроїв пояснили, що це відбувається, коли в пристрої відсутній серійний номер USB.

Серійні номери не є обов'язковими для пристроїв USB. Якщо пристрій має такий, Windows розпізнає пристрій незалежно від того, до якого порту USB ви підключите його. Але якщо він не має серійного номера, то Windows розглядає кожну появу на іншому USB-порту так, ніби це новий пристрій.

(Я пам’ятаю, що один великий виробник USB-пристроїв не зовсім розумів, як працюють серійні номери. Вони дали серійні номери всіх своїх пристроїв, це чудово, але всі вони отримали однаковий серійний номер. Захоплюючі речі трапилися, якщо ви підключили два їхніх пристрої в комп'ютер одночасно.)

Але чому Windows трактує це як інший пристрій, якщо йому не вистачає серійний номер і відображається на іншому порту? Чому не можна просто сказати: "О, ви там, на іншому порту".

Тому що це створює випадкову поведінку, коли ви підключаєте два таких пристрої. Залежно від порядку, в якому пристрої перераховуються за допомогою функції Plug and Play, два набори параметрів призначаються, здавалося б, випадковим чином при кожному завантаженні. Сьогодні налаштування відповідають одному напрямку, але завтра, коли пристрої перераховуються в іншому порядку, налаштування змінюються. (Аналогічну поведінку ви отримуєте з глузду, якщо ви підключаєте пристрої в іншому порядку.)

Іншими словами: речі смокчуть, оскільки (1) речі вже були в поганому стані - це не було б проблемою, якби пристрій мав належний серійний номер, і (2) коли ви перебуваєте в такому поганому стані, альтернатива смокче більше . Стек USB просто намагається якнайкраще використати погану ситуацію, не погіршуючи її.


17
Я не можу зрозуміти, чому потрібно знову заново встановити драйвери пристроїв. Чи буде зараз підтримуватися окремі копії драйверів для одного і того ж пристрою на кожному порту?
Агнел Куріан

1
Я подумаю, що це просто асоціювання існуючих драйверів з новим позначенням порту.
Брайан Уайт

1
@BrianWhite він проходить весь процес завантаження та налаштування. Ви можете переглянути його, натиснувши сповіщення на панелі завдань
Cool Blue

1
О, я дивився це багато разів. Важко сказати з цього діалогового вікна, якщо це дійсно отримання нових даних з Інтернету або просто використання локальних файлів (але загального тексту діалогу) або щось середнє.
Брайан Уайт

Чи все-таки потрібно самостійно дати USB-пристрою серійний номер? Або це щось, що можна зробити лише на виробничому рівні?
TMH

2

Windows (як ви не заявляєте, що ОС ви припускаю, що це те, що ви використовуєте) пов'язує пристрій з портом, до якого він підключений, тому вважав, що "USB DISK A в порту X" відрізняється від "USB DISK A в порт Y ", і він відповідно пов'язує драйвери та записи реєстру.

Якщо під час перегляду диспетчера пристроїв ви користуєтесь опцією "показати неприєднані пристрої", ви побачите пристрій, приєднаний до всіх портів, до яких він коли-небудь був підключений, але затьмарений, оскільки його зараз немає. Коли ви підключите пристрій до одного з цих портів, Windows просто активує цей екземпляр драйвера, коли ви підключите його до іншого порту, перед активацією його потрібно буде визначити новий екземпляр драйвера для цього порту (який процес ви бачите як користувача відображається як "додавання нового пристрою".

Це дозволяє мати однакові пристрої, підключені до різних портів, що працюють одночасно. Є й інші способи досягти цього, з невеликою практичною різницею для кінцевого користувача, яку техніку використовує ОС, але саме так Windows вирішує її влаштувати.


4
Близько, але не зовсім. Windows розпізнає один і той же пристрій через різні порти, якщо він може відслідковувати саме цей пристрій. Для цього пристрій повинен надати серійний номер.
Jasonh

4
Диски, як правило, мають серійний номер, його на носіях і розміщують там у форматі. Навіть по-справжньому дешеві клавіші із приводом на клавіатурі є одними з найкращих подій з усіх USB-пристроїв. Миші, клавіатури, джойстики та інші дешеві пристрої, як правило, є найгіршими правопорушниками. Справжній роздратування - це серійний адаптер USB до RS-232 без серійного номера. Він буде присвоєний новому імені COM-порт кожного разу, коли він буде випадково переміщений до нового порту. Не смішно.
RBerteig
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.