Dpinst.exe的DriverPackagePreInstall错误

人气:921 发布:2022-10-16 标签: 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)MyAppmy_driver.inf'.
INFO:   Preinstalling 'C:Program Files (x86)MyAppmy_driver.inf' ...
INFO:   ENTER:  DriverPackagePreinstallW
INFO:   RETURN: DriverPackagePreinstallW  (0xE0000247)
INFO:   Returning with code 0x80010000

推荐答案

直接从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又由DriverPackagePreinstall内部调用。

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

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

412