我们有一些驱动程序包,我们使用SetupCopyOEMInf预安装在 Windows 上的驱动程序商店中,遵循Microsoft 建议的程序。这个过程多年来一直运作良好;在 XP、Vista、7 甚至 8 上都没有问题。
在评估 Windows 8.1 RTM 时,我们发现我们的驱动程序不再预安装。
检查 setupapi.dev.log,我发现:
!!! 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
我翻阅了文档,试图找出我们做错了什么。
pnputil.exe -a
使用或使用 InstallScript从命令行预安装会DIFxDriverPackagePreinstall()
产生相同的结果。
如果我们不尝试将驱动程序放在驱动程序存储中,驱动程序可以在 Windows 8.1 上运行。如果我们将已经安装了驱动程序的 Windows 8 机器升级到 Windows 8.1,预安装也可以工作。无论哪种情况,一旦它开始工作,它就会继续工作。
为什么这在 Windows 8.1 上失败了?