为 windows 生物识别框架创建了一个存储适配器,但无法安装和加载

Created a storage adapter for windows biometric framework but unable to install and load

我已经为 windows 生物识别框架创建了一个存储适配器。在 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_1162&PID_2200&376aba2d&0&9\Device Parameters\WinBio\Configurations 和 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WbioSrvc\Databases 的注册表中添加了相关键和参数。将我的存储适配器的 dll 复制到 C:\WINDOWS\SYSTEM32\WINBIOPLUGINS 目录中。尝试使用 winbio.dll 的 WinBioOpenSession 方法在生物识别会话中加载存储适配器。出现以下错误:

1) 在生物识别事件日志中= "The Windows Biometric Service failed to load an adapter binary: C:\WINDOWS\SYSTEM32\WINBIOPLUGINS\STORAGEADAPTER.DLL.The module was not properly signed".

2) 在代码完整性事件日志中="Windows is unable to verify the image integrity of the file \Device\HarddiskVolume2\Windows\System32\WinBioPlugIns\StorageAdapter.dll because file hash could not be found on the system. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.".

在网上搜索了一些有关上述错误的信息,发现必须对dll进行签名才能安装和加载。所以尝试了测试签名和发布签名(使用 godaddy 的驱动程序签名证书),但仍然出现相同的错误。我唯一没能做到的是用交叉证书对我的 dll 进行签名,因为我无法为我的驱动程序签名证书找到合适的交叉证书。

查询:是否需要同时使用交叉证书和驱动程序签名证书对 dll 进行签名,或者仅使用驱动程序签名证书进行签名就足以将其安装在 windows 上?

注意:如果我在这里遗漏了什么或者没有按照正确的过程在生物识别会话中加载自定义存储适配器,请给我建议。

现代 Windows 内核要求驱动程序由 Microsoft 批准的特定证书颁发机构 (CA) 签名(实际上它必须使用两个密钥 CA 和 MS 进行签名,MS 用于在引导过程中加载的驱动程序) .如果您正在开发驱动程序,您应该在测试机上设置禁用 TESTSIGNING 的测试机。一旦你完成开发,你和微软需要在发布之前签署驱动程序,以便驱动程序能够加载到内核中。

微软网站上有详细说明如何准备驱动测试机的文档。但这里的命令将有助于在内核中禁用 TESTSIGNING(需要重新启动系统)。

请注意:命令的路径可能因系统而异,请在您的 PC 上搜索 bcdedit.exe 以找到路径。

C:\Windows\winsxs\amd64_microsoft-windows-b..iondata-cmdlinetool_31bf3856ad364e35_6.1.7601.17514_none_e6510234bbcb2a8c\bcdedit.exe -set TESTSIGNING OFF

还强烈建议站点 community.osr.com,大多数 Windows 内核开发人员都可以在这里交流他们的知识,该站点专门用于内核开发。 他们过去帮了我很多。

希望对您有所帮助