在Windows 8.1上预安装驱动程序失败 [英] Preinstalling Driver on Windows 8.1 Fails

查看:187
本文介绍了在Windows 8.1上预安装驱动程序失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们已经在Windows的驱动程序存储中预先安装了一些驱动程序包,其中 SetupCopyOEMInf ,在 Microsoft建议的程序。这个过程已经运作了好几年了。在XP,Vista,7甚至8上都没有问题。

We have a few driver packages that we pre-install in the driver store on Windows with SetupCopyOEMInf, following Microsoft's suggested procedures. This process has worked properly for years; no problems on XP, Vista, 7, and even 8.

在取消Windows 8.1 RTM的同时,我们发现驱动程序不再预先安装。

While evaulating Windows 8.1 RTM, we found that our drivers were no longer pre-installing.

检查setupapi.dev.log,发现:

Checking the setupapi.dev.log, I found:

!!!  sto:                Failed to query boot critical status of device class. Error = 0x00000002

及更高版本:

!!!  idb:                Failed to query inbox status of device class {ff646f80-8def-11d2-9449-00105a075f6b}. Error = 0x00000002
!!!  idb:                Failed to publish 'C:\Windows\System32\DriverStore\FileRepository\[ourinfname].inf_x86_3361fc76cd85b678\[ourinfname].inf'. Error = 0x00000002

我仔细阅读了文档,试图找出我们做错了什么。

I've poured through documentation, trying to find out what we're doing incorrectly.

使用 pnputil.exe -a 从命令行预安装,或使用InstallScript的 DIFxDriverPackagePreinstall() 产生相同的结果。

Preinstalling from the commandline with pnputil.exe -a or using InstallScript's DIFxDriverPackagePreinstall() produce the same results.

如果我们不要尝试将驱动程序放入驱动程序商店,则驱动程序可以在Windows 8.1上运行。如果我们将已经装有驱动程序的Windows 8计算机升级到Windows 8.1,则预安装也可以使用。在任何一种情况下,一旦运行,它将继续运行。

The drivers work on Windows 8.1 if we DON'T try and put them in the driver store. The preinstallation also works if we upgrade a Windows 8 machine that already had our drivers on it to Windows 8.1. In either case, once it's working, it continues to work.

为什么在Windows 8.1上会失败?

Why is this failing on Windows 8.1?

推荐答案

我的上一个答案实际上有点像是鲱鱼。 虽然绝对不应该在示例INF中使用GUID ,但真正的问题最终出在我们的安装程序中。原来,我们的安装尝试为该类预创建注册表项:

My previous answer was actually a bit of a red herring. While one should definitely not use the GUID in the sample INF, the REAL problem ended up being with our installer. Turns out, our installation was trying to pre-create the registry key for the class:

HKLM\SYSTEM\CurrentControlSet\Control\Class\{FF646F80-8DEF-11D2-9449-00105A075F6B}

从我们的安装程序已解决了该问题。

Removing this from our installer fixed the problem.

Microsoft必须更改了驱动程序预安装在Windows早期版本中的工作方式。

Microsoft must have changed how driver preinstallation works under the hood from previous versions of Windows.

这篇关于在Windows 8.1上预安装驱动程序失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆