使用dpinst.exe时出现DriverPackagePreinstall错误

时间:2014-08-06 12:31:27

标签: winapi driver inf dpinst

尝试使用 Microsoft驱动程序包安装程序DPInst 安装驱动程序时出现错误 0xE0000247 。 我尝试使用 Visual Studio查找工具检查错误代码,但该工具不知道此错误代码。 MSDN也没有帮助。

如何查找此错误的含义?

在我的 DPINST.LOG 文件的片段下面:

INFO:   Install option set: Running in quiet mode. Suppressing Wizard and OS popups.
INFO:   Install option set: legacy mode on.
INFO:   Install option set: Suppressing EULA.
INFO:   Install option set: Force install if driver is not better.
INFO:   Install option set: Suppress Add or Remove Programs entries.
INFO:   Found driver package: 'C:\Program Files (x86)\MyApp\my_driver.inf'.
INFO:   Preinstalling 'C:\Program Files (x86)\MyApp\my_driver.inf' ...
INFO:   ENTER:  DriverPackagePreinstallW
INFO:   RETURN: DriverPackagePreinstallW  (0xE0000247)
INFO:   Returning with code 0x80010000

1 个答案:

答案 0 :(得分:3)

直接从SetupAPI.h(省略不相关的行):

#define APPLICATION_ERROR_MASK       0x20000000
#define ERROR_SEVERITY_ERROR         0xC0000000
#define ERROR_DRIVER_STORE_ADD_FAILED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x247)

因此,您的错误为ERROR_DRIVER_STORE_ADD_FAILED,这是SetupCopyOEMInf返回的一般错误代码,而DriverPackagePreinstall则会在内部调用。

此错误的原因记录不清,但似乎与任何特定类型的错误无关(因此我将其称为" generic")。该名称本身表明无法将驱动程序添加到driver store(或Windows版之前的操作系统版本的DIFx driver store),这可能有多种原因(访问权限不足,驱动程序包验证失败) ,...)。

根据个人经验,我可以告诉您,大多数情况下发生此错误时,用于在64位Windows上签署驱动程序包的证书存在问题。 (这应该是CERT_E_*错误代码中的一个,但是......)