2014-01-22 7 views
1

Такая же ситуация, как описано в Preinstalling Driver on Windows 8.1 Fails. Но есть ли исправление, как переустановить один и тот же пакет драйверов (без изменения ключа) без переустановки 8.1?Как исправить предустановленный драйвер в Windows 8.1

Ситуация:

На новой установке для Windows 8.1 (без обновления с 8.0), наши USB-устройства не могут быть установлены. Поведение может быть воспроизвести с VM:

  1. создание записей реестра с классом Guid из инфа файла, чтобы показать правильный значок USB и создать собственную группу в диспетчере устройств:

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71f11c3d-6aaf-489e-ae80-f705496f1ec3}] 
    "Icon"="-20" 
    @="My Devices" 
    "IconPath"="C:\\Windows\\system32\\setupapi.dll,-20" 
    
  2. подключение устройство

  3. вручную установите драйвер в диспетчере устройств с помощью «Просмотр моего компьютера для программного обеспечения драйвера». Нажмите «Установить» при появлении запроса на программное обеспечение устройства . Установка заканчивается:

    Error: Windows found driver software for your device, but encountered an error while attempting to install it. 
    The system cannot find the file specified. 
    

Report.wer говорит в конце:

FriendlyEventName=Could not install driver software 
ConsentKey=PnPDriverImportError 
AppName=Driver software installation 
AppPath=C:\Windows\System32\mmc.exe 
ReportDescription=Windows could not copy all of the files needed to install this device driver software. This sometimes happens when the driver software was not designed for this version of Windows. 
ApplicationIdentity=00000000000000000000000000000000 

ReportDescription не делает действительно чувствую, так как ручная установка не делает никаких проблем. Подписанный драйвер WHQL показывает ту же ошибку.

Если реестр не изменяется (шаг 1), все работает нормально.

Дополнительная информация:

  • Обычай записи реестра работал отлично, так как XP, включая Windows, 8.0.
  • Удаление 3 записей в реестре ПОСЛЕ подключено устройство, но до, пытаясь установить драйвер вручную, также не работает. Похоже на создание этой записи в реестре, и обнаружение устройства USB что-то разрушает.
  • Файл кот будет подписан, но SYS не WHQL лицензированы
  • для Windows 8.1 (x64, не обновление с 8.0), не испытывали на 32bit

Вопрос

Skipping модификация реестра в установщике проста, но что такое исправление для клиентов, которые безуспешно пытались установить драйверы уже? Я не нашел способ включить устройство без новой установки Windows!

ответ

1

Единственное затруднительное я мог бы найти так тариф:

- A restart might be required 
- pnputil -e        // to find buggy oemxx.inf files 
- pnputil -d oemXX.inf     // delete 
- delete HKLM\SYSTEM\CurrentControlSet\Control\Class\{71f11c3d-6aaf-489e-ae80-f705496f1ec3} 
- pnputil -i -a c:\pathToDriver\*.inf // install and add to store 

Не для конечных потребителей, но это работает.

+0

Я автор связанного вопроса, связанного выше. Это решение, в основном, мы делаем, хотя мы написали пользовательскую утилиту, используя SetupDiGetClassDevs(), SetupDiEnumDeviceInfo(), SetupDiRemoveDevice(), SetupGetInfFileList(), SetupDiGetINFClass() и SetupUninstallOEMInf(). Мы написали эту утилиту еще до того, как существовал pnputil (это не на машинах Windows XP). Проблема заключается в том, что вы создаете запись реестра перед установкой своих драйверов - если Windows 8.1 не может создать информацию о классе как часть процесса установки устройства, это не сработает. – Brown