如何在Windows 8.1上修复预安装的驱动程序

时间:2014-01-22 10:45:28

标签: guid windows-8.1 drivers wdk inf

与描述相同的情况 Preinstalling Driver on Windows 8.1 Fails。 但有没有修复如何重新安装相同的驱动程序包(没有guid更改)而无需重新安装8.1?

情况:

在全新的Windows 8.1安装中(无法从8.0升级),我们的USB设备无法安装。可以使用VM重现行为:

  1. 使用inf文件中的类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.
    
  4. 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个注册表项 AFTER ,但 尝试手动安装驱动程序之前也不起作用。看起来像创建此注册表项并检测到USB设备会破坏某些内容。
    • cat文件已签名,但sys未获得WHQL许可
    • Windows 8.1(x64,无法从8.0升级),未在32位上进行测试

    问题

    在安装程序中跳过注册表修改很容易,但对于尝试安装驱动程序失败的客户,有哪些修复方法? 我没有办法在没有全新Windows安装的情况下启用设备!

1 个答案:

答案 0 :(得分: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

不适用于最终客户,但它确实有效。