问题描述
尝试使用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_*
错误代码之一,但是...)