Vallyol's Blog

20/09/2011

Восстановление работы USB устройств

Filed under: USB Device — Метки: , , — vallyol @ 22:51

Все нижеизложенное относится ко всем устройствам USB, которые перестали работать из-за сбоев в операционной системе Windows XP.

Если у Вас не установлен «Сервис пак 1(SP1)», а также «Пакет исправлений для Windows XP Q810400» и «Пакет исправлений для Windows XPKB822603» — то немедленно установите (http://windowsupdate.microsoft.com/) и, надеюсь, дальше Вам читать не потребуется.

1. Симптомы.

Само устройство РАБОТАЕТ. Это Вы проверили на другой машине.

  • При подключении же именно к Вашему компьютеру, оно либо не определяется вообще, либо определяется неправильно, либо даже правильно определяется, но не работает как нужно.
  • Вы уверены, что установлены все необходимые драйверы всех устройств подключенных к системе.
  • Вы уверены, что переустановка и обновление драйверов USB контроллеров и устройств USB сделаны корректно.
  • В «Управлении устройствами» (Device manager) — показывает, что все устройства работают нормально и конфликтов нет.
  • Устройство все равно не работает, ничего не помогает и Вы готовы переустанавливать систему.

2. Причина.

Как правило такая ситуация может возникнуть если USB 2.0 Enhanced Host Controller использует одно прерывание вместе с каким-либо другим устройством (IRQ Sharing), например звуковым или видео. В этом случае нарушается правильная передача параметров (FDO, PDO) от драйверов USB (usbhub.sys, usbstor.sys, usbport.sys) к драйверам логических устройств, например от usbstor.sys в disk.sys в случае «USB 2.0 mass storage device».

3. Возможные решения.

НЕОБХОДИМАЯ ОГОВОРКА:

ВСЕ дальнейшие действия Вы производите на свой страх и риск, и ни я, ни наша компания, ни любое третье лицо не несет никакой ответственности за последствия Ваших действий. Если Вы совсем не понимаете смысла действий описанных ниже — лучше Вам этого не далать. В любом случае сохраните всё что можно, сделайте бэкап, создайте точку восстановления и т.п. Дальнейшее написано на основании ответа «Microsoft Windows Support Professional» господину rosest, который он опубликовал в конференции сайта http://www.experts-exchange.com/Hardware/Q_20790258.html с разрешения MS support. Хотя там упоминается цифровая камера, это применимо ко всем USB mass storage устройствам (камерам, кардридерам, USB HDD и т.п.).

Шаг 1: Отключите все USB устройства от компьютера и загрузите компьютер в БЕЗОПАСНОМ РЕЖИМЕ (Safe Mode) — нажмите F8 при старте компьютера.

Если Вы используете USB мышь и/или клавиатуру — их можно не отключать, но если Вы удалите или USB контроллер, или хаб, или их самих — они работать не будут. Так, что лучше загружаться с клавиатурой и мышью не USB.

Шаг 2: Удаление скрытых устройств

1. Кликните ПУСК. Кликните Выполнить. Напечатайте cmd и нажмите OK. Должно появиться окно командной строки.

2. Напечатайте «set DEVMGR_SHOW_DETAILS=1» (без кавычек) и нажмите Enter.

3. Напечатайте «set DEVMGR_SHOW_NONPRESENT_DEVICES=1» (без кавычек) и нажмите Enter.

Пункты 2 и 3 можно объединить в один, выполнив reg-файл следущего содержания:

[HKEY_CURRENT_USER\Environment]
"DEVMGR_SHOW_DETAILS"="1"
"DEVMGR_SHOW_NONPRESENT_DEVICES"="1"

4. Напечатайте «start devmgmt.msc» (без кавычек) и нажмите Enterr. Должен появиться «Device Manager», или «Управление устройствами» в русской версии.

5. Кликните View (Вид). Кликните Show hidden devices (Показать скрытые устройства).

6. Кликая «+» разверните Imaging devices, Неизвестные устройства, USB устройства, Disk Drives, Storage Volumes, DVD/CD-ROM и другие классы которые могут иметь отношение к Вашему неработающему девайсу. Например к USB 2.0 HDD относятся классы Disk Drives, Storage Volumes, USB устройства

7. Если Вы увидели в развернутых классах Ваше устройство (включая посеревшие) кликните на нем правой кнопкой и в выпавшем меню кликните Uninstall (Удалить). Например для USB 2.0 HDD надо удалить все «USB 2.0 Storage Device USB Device» из класса «Disk Drives», все «USB mass StorageDevice» из класса «USB controllers» и серые «Generic Volume» из класса «Storage Volumes» .

Будте осторожны, чтобы не удалить устройства, обслуживающие Ваши жесткие диски с которых грузится Windows.

Шаг 3: Удаление всех oem*.inf файлов

1. Кликните ПУСК. Кликните Выполнить. Напечатайте cmd и нажмите OK. Должно появиться окно командной строки.

2. В командной строке, напечатайте следующее (без кавычек) и нажимайте Enter после каждой команды: «cd \windows\inf»

«ren infcache.1 *.old»

«ren oem*.inf *.old»

«del C:\windows\setupapi.log»

«exit»

Можно сделать тоже самое с помощью какого-либо shell’a, только надо включить возможность просмотра скрытых и системных файлов (каталог inf — скрытый).

NB! Если у Вас установлено несколько копий Windows, необходимо проделать эту процедуру ДЛЯ ВСЕХ установок Windows.

Шаг 4: Удаление всех ключей в ветке реестра HKEY_LOCAL_MACHINE/Enum/USB которые начинаются с VID

Удаление VID_…. ключей из реестра приведет к распознаванию USB устройств заново при рестарте системы.

ПРЕДУПРЕЖДЕНИЕ: Если у Вас USB мышь или клавиатура, не удаляйте их ветки реестра, иначе Windows при рестарте может глюкануть. Определить эти ветки можно кликнув на «+» VID_…. ключа и кликнуть на ключ ступенькой ниже. Если справа в значении переменной DeviceDesc Вы увидите что-то типа «Human Interface Device» или HID — то это как раз мышь или клавиатура.

1. Кликните ПУСК. Кликните Выполнить. Напечатайте regedit и нажмите OK. Должен открыться редактор реестра.

2. Перейдите на HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB.

3. Выделите и удалите все (кроме HID) VID_…. ключи. Не получается?! Правильно! Сначала должены быть установлены права доступа на соответствующий ключ VID_…. реестра.

Для этого:

  • правым кликом на соответствующем ключе открываем меню и выбираем Permissions.
  • выбираем Everyone (Все) и назначаем Full Control (полный доступ).
  • Кликаем Применить, затем ОК.

4. Закрываем всё и ВЫКЛЮЧАЕМ компьютер.

Шаг 5: Подключение устройства к компьютеру:

1. Пока компьютер ВЫКЛЮЧЕН присоедините Ваше устройство к USB порту.

2. Включаем компьютер.

3. ПОСЛЕ того, как Windows ПОЛНОСТЬЮ загрузиться и прекратит бешено шуршать хардом, подсоединяем питание к Вашему устройству.

4. Должен начаться процесс детектирования нового устройства и полная переустановка драйверов для него. PS: Если после п 2 не происходит выполнение п 3 — я Вас предупреждал.

Примечания Описанную выше процедуру можно также применить и к root_hub веткам, но только если у Вас не USB клавиатура и мышь. Ветку USBSTORE можно также удалить в шаге 4. В конце концов можно попробовать полностью удалить USB подсистему и заставить Windows заново распознать и установить все драйверы USB. В этом случае надо удалить все USB устройства на шаге 2 в том порядке как они располагаются при просмотре в Device Manager при просмотре устройств по подключению.

Например для USB Flash: сначала Generic Volume, затем как-там-оно-у-вас-называется-USB device, затем USB mass storage device, затем USB Root Hub, далее … USB .. Host Controller, А вот дальше ничего трогать НЕ НАДО, а то будет больно и обидно …

В реестре тоже соответственно удалить полностью ключи HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB и HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USBSTORE.

4.Краткие итоги

— подсоединяем проблемное запоминающее USB-устройство (ext.HDD, flash-drive … ) непосредственно к USB-порту на МВ (никаких доп.устройств и удлинителей), на тыльной стороне компьютера;
— в Диспетчере устройств в разделе Контроллёры универсальной последовательной шины удаляем все Запоминающее устройство для USB, предварительно посмотрели/записали Vid_xxxx&Pid_xxxx данного устройства;
— отсоединяем проблемное USB-устройство;
— в реестре, в подразделах:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\
удаляем ключи с VID&PID и наименованием проблемного запоминающее USB-устройство (ext.HDD, flash-drive, flash-card…), а также ключ с Vid_0000&Pid_0000, если он присутствует. В разрешениях для данных ключей необходимо предоставить Полный доступ пользователю Все, иначе ключи не удалить.
— удаляем файл windows\inf\usb.inf;
— удаляем файл windows\inf\usb.pnf;
— удаляем файл windows\inf\usbstor.inf;
— удаляем файл windows\inf\usbstor.pnf;
— удаляем файл windows\system32\drivers\usbstor.sys;
— устанавливаем файл windows\inf\usb.inf из оригинального дистрибутива от MS;
— устанавливаем файл windows\inf\usbstor.inf из оригинального дистрибутива от MS;
— устанавливаем файл windows\system32\drivers\usbstor.sys из оригинального дистрибутива от MS;
— перезагружаем компьютер;
— после перезагрузки будет произведён поиск и установка драйверов для нового оборудования, выбираем Автоматическая установка (рекомендуется);
— подсоединяем проблемное запоминающее USB-устройство (ext.HDD, flash-drive … ) непосредственно к USB-порту на МВ (никаких доп.устройств и удлинителей), на тыльной стороне компьютера;
— испытываем глубокое удовлетворение или применяем другие решения проблемы, в частности, переустанавливаем OS Windows. Возможно, потребуется обновить драйвера других USB-устройств (мышь, принтер, сканер и т.д), но по идее, Windows сам найдёт и надо будет только согласиться с «Автоматическим обновлением».

5. См. также

USB-устройства, решение проблем

Реклама

Блог на WordPress.com.

%d такие блоггеры, как: