2014-08-06 8 views
0

При попытке установить драйвер с помощью Microsoft Driver Package Installer DPInst я получил ошибку 0xE0000247. Я попытался проверить код ошибки с помощью Visual Studio Lookup Tool, но инструмент не знает этого кода ошибки. Также MSDN здесь не помогает.DriverPackagePreinstall ошибка DPInst.exe

Как я могу узнать значение этой ошибки?

Ниже фрагмент моего 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 

ответ

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, который, в свою очередь, является cal во главе с DriverPackagePreinstall внутренне.

Причина этой ошибки плохо документирована, но, похоже, не связана с каким-либо конкретным типом ошибки (поэтому я назвал ее «общим»). Само название говорит о том, что драйвер не может быть добавлен к driver store (или DIFx driver store для версий ОС до Windows Vista), которые могут иметь различные причины (недостаточные права доступа, проверка отказа пакета драйвера, ...).

Из личного опыта я могу сказать, что большую часть времени, когда возникает эта ошибка, возникает проблема с сертификатом, используемым для подписи пакета драйвера в 64-разрядной Windows. (Который действительно должен быть одним из кодов ошибок CERT_E_*, но хорошо ...)