【发布时间】:2019-02-19 03:04:26
【问题描述】:
我正在尝试运行 Windows biometric driver sample,但我对驱动程序开发很天真
我已经更改了 inx 文件中的硬件 ID,并重建了驱动程序项目,并将生成的驱动程序安装在我的 Windows 10 Pro 版本 1803 上。
我正在使用指纹 Morpho 设备 1300 E3
驱动安装成功,但出现一个错误:
此设备无法启动。 (代码 10) 指定的请求不是目标设备的有效操作。
我查看了文件C:\Windows\INF\setupapi.dev.log
它显示下一个警告:
sig: {_VERIFY_FILE_SIGNATURE} 10:13:03.130
sig: Key = wudfbiousbsample.inf
sig: FilePath = C:\WINDOWS\System32\DriverStore\Temp\{ee9ffca3-751f-0b4e-a7ac-dce2543d995e}\wudfbiousbsample.inf
sig: Catalog = C:\WINDOWS\System32\DriverStore\Temp\{ee9ffca3-751f-0b4e-a7ac-dce2543d995e}\biometrics.cat
! sig: Verifying file against specific (valid) catalog failed.
! sig: Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
!!! dvi: Device not started: Device has problem: 0x0a (CM_PROB_FAILED_START), problem status: 0xc0000450.
但我在本地计算机上的受信任的根证书颁发机构和受信任的发布者上安装了 TestCertificate
我还检查了 EventViewer: 应用程序和服务日志 > Microsoft\Windows\CodeIntegrity 应用程序和服务日志 > Microsoft\Windows\Biometrics
我尝试使用 wdfverifier.exe following some videos from msdn 进行调试,但进程没有启动,所以我无法调试:(
我验证了 Visual Studio 没有对 EngineAdapter.dll 插件文件进行签名,因此我禁用了驱动程序签名并按照 this paper 手动进行了签名。但我得到相同的错误代码 10 :(
我还想知道错误代码 10 是否是预期的行为,因为 EngineAdapter.dll 的代码没有实现。
更新:我正在 Windows 10 Pro 版本 1709 虚拟机 VMWare 上进行测试,但出现其他错误:
此设备无法正常工作,因为 Windows 无法加载此设备所需的驱动程序。 (代码 31)
!!! dvi: Device not started: Device has problem: 0x1f (CM_PROB_FAILED_ADD), problem status: 0xc0000001.
同样的警告:
sig: {_VERIFY_FILE_SIGNATURE} 17:19:01.646
sig: Key = wudfbiousbsample.inf
sig: FilePath = C:\Windows\System32\DriverStore\Temp\{85323f79-3f5f-f84c-a52b-639b6ae57db1}\wudfbiousbsample.inf
sig: Catalog = C:\Windows\System32\DriverStore\Temp\{85323f79-3f5f-f84c-a52b-639b6ae57db1}\biometrics.cat
! sig: Verifying file against specific (valid) catalog failed.
! sig: Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
sig: {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 17:19:01.661
sig: {_VERIFY_FILE_SIGNATURE} 17:19:01.676
sig: Key = wudfbiousbsample.inf
sig: FilePath = C:\Windows\System32\DriverStore\Temp\{85323f79-3f5f-f84c-a52b-639b6ae57db1}\wudfbiousbsample.inf
sig: Catalog = C:\Windows\System32\DriverStore\Temp\{85323f79-3f5f-f84c-a52b-639b6ae57db1}\biometrics.cat
sig: Success: File is signed in Authenticode(tm) catalog.
sig: Error 0xe0000241: The INF was signed with an Authenticode(tm) catalog from a trusted publisher.
sig: {_VERIFY_FILE_SIGNATURE exit(0xe0000241)} 17:19:01.708
sto: {DRIVERSTORE IMPORT VALIDATE: exit(0x00000000)} 17:19:01.739
完整的日志文件在这里setupapi.dev.log
我认为驱动程序无法加载,因为有关证书或错误的警告可能在其他地方。
如果有人可以给我一个小建议以继续。我现在卡住了:(
非常感谢。
【问题讨论】:
-
这可能有帮助,也可能没有帮助,但如果我收到类似的不透明故障消息,我经常使用来自 SysInternals 的
procmon。有时您会看到一系列注册表或文件系统查找,这些查找给您强烈提示哪些幕后部分失败了。背景:procmon是一个 Windows 应用程序,它向您显示系统进行的每个 FS 或注册表查找,包括调用堆栈(如果您有符号)。 -
还有一个有用的工具谢谢@ArtHare。我能够在启动时调试我的生物识别驱动程序(禁用/启用设备),视频来自:docs.microsoft.com/en-us/windows-hardware/drivers/wdf/…
-
调试后我在以下行遇到访问冲突异常:UCHAR NumInterfaces = pIUsbTargetDevice->GetNumInterfaces(); JinZhuXinggithub.com/Microsoft/Windows-driver-samples/issues/346表示我会改代码再调试一次
-
在对我的设备进行一些特定更改后,我的驱动程序开始工作:此设备工作正常 :)
-
请考虑写下您的更改作为答案并接受它。此问题显示为开放且有赏金。