DriverPackagePreinstall ошибка с dpinst.exe
При попытке установить драйвер с помощью установщика пакета драйверов Microsoft DPInst я получил ошибку 0xE0000247. Я пытался проверить код ошибки с помощью Visual Studio Lookup Tool, но инструмент не знает этот код ошибки. Также 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 ответ
Прямо из 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
внутренне.
Причина этой ошибки плохо документирована, но, похоже, не связана с каким-либо конкретным типом ошибки (поэтому я назвал ее "универсальной"). Само название предполагает, что драйвер не может быть добавлен в хранилище драйверов (или хранилище драйверов DIFx для версий ОС до Windows Vista), что может иметь различные причины (недостаточные права доступа, сбой проверки пакета драйвера,...),
Из личного опыта могу вам сказать, что в большинстве случаев при возникновении этой ошибки возникает проблема с сертификатом, который используется для подписи пакета драйвера в 64-битной Windows. (Который действительно должен быть одним из CERT_E_*
коды ошибок, но хорошо...)