安装生物识别驱动程序
供应商可以提供 INF 文件来安装 WBDI 驱动程序。
下面是生物识别设备安装指南列表。 本文中的代码示例取自 WudfBioUsbSample 的 WudfBioUsbSample.inx 文件:
WBDI 驱动程序应指定一个类“Biometric”。将 ClassGuid 设置为等于 Devguid.h 中 GUID_DEVCLASS_BIOMETRIC 的值:
[Version] ... Class=Biometric ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359} ...
在 .HW 部分中提供 AddReg 指令,以指定要添加到注册表的条目的三个部分:
[Biometric_Install.NT.hw] AddReg=Biometric_Device_AddReg AddReg=DriverPlugInAddReg, DatabaseAddReg
提供在 .HW 部分中引用的命名部分。 [Biometric_Device_AddReg] 部分设置生物识别设备的值,包括独占标志和系统唤醒/设备空闲。 若要通过 Windows 生物识别框架识别,基于 UMDF 的 WBDI 驱动程序必须将“独占”值设置为 1。 [Biometric_Device_AddReg] 部分的前两行指定访问控制列表 (ACL) 权限,以便设备只能由管理员或本地系统帐户打开。 指定这些 ACL 权限时,第三方应用程序无法在 WinBio 服务未运行时打开设备并捕获指纹数据。 例如:
[Biometric_Device_AddReg] HKR,,"DeviceCharacteristics",0x10001,0x0100 ; Use same security checks on relative opens HKR,,"Security",,"D:P(A;;GA;;;BA)(A;;GA;;;SY)" ; Allow generic-all access to Built-in administrators and Local system HKR,,"LowerFilters",0x00010008,"WinUsb" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND HKR,,"Exclusive",0x10001,1 HKR,,"SystemWakeEnabled",0x00010001,1 HKR,,"DeviceIdleEnabled",0x00010001,1 HKR,,"UserSetDeviceIdleEnabled",0x00010001,1 HKR,,"DefaultIdleState",0x00010001,1 HKR,,"DefaultIdleTimeout",0x00010001,5000
向旧版(非 WBDI)公开功能的 WBDI 驱动程序生物识别堆栈应将“独占”值设置为零。 如果将此值设置为零,则 Windows 生物识别框架不会尝试控制设备,并且不会通过 WBF 公开设备。
供应商可以有一个可以与旧堆栈和 WBF 配合使用的驱动程序二进制文件,但两者不能同时运行。 仅当设备可通过独占访问打开时,WBF 才会运行。
第二个命名部分包含插件适配器的注册表值。 此示例使用 Microsoft 提供的传感器适配器和存储适配器。 本部分还通过设置 SystemSensor 值来启用 Windows 登录支持:
[DriverPlugInAddReg] HKR,WinBio\Configurations,DefaultConfiguration,,"0" HKR,WinBio\Configurations\0,SensorMode,0x10001,1 ; Basic - 1, Advanced - 2 HKR,WinBio\Configurations\0,SystemSensor,0x10001,1 ; UAC/Winlogon - 1 HKR,WinBio\Configurations\0,SensorAdapterBinary,,"WinBioSensorAdapter.DLL" ; Windows built-in WBDI sensor adapter. HKR,WinBio\Configurations\0,EngineAdapterBinary,,"EngineAdapter.DLL" ; Vendor engine HKR,WinBio\Configurations\0,StorageAdapterBinary,,"WinBioStorageAdapter.DLL" ; Windows built-in storage adapter HKR,WinBio\Configurations\0,DatabaseId,,"6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50" ; Unique database GUID
最后,第三个部分设置数据库服务的以下注册表值。 对于特定格式的每个供应商数据库,标识 GUID 必须是唯一的。 例如,在此代码示例中,将 6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50 更改为 INF 文件中自己的唯一 GUID。
[DatabaseAddReg] HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},BiometricType,0x00010001,0x00000008 HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},Attributes,0x00010001,0x00000001 HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},Format,,"00000000-0000-0000-0000-000000000000" HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},InitialSize,0x00010001,0x00000020 HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},AutoCreate,0x00010001,0x00000001 HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},AutoName,0x00010001,0x00000001 HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},FilePath,,"" HKLM,System\CurrentControlSet\Services\WbioSrvc\Databases\{6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50},ConnectionString,,""
若要区分 WBDI 和旧驱动程序,供应商必须在 INX 文件中为驱动程序设置功能分数。 在 WudfBioUsbSample 示例中未设置功能分数。 有关设置功能分数的详细信息,请参阅在 Windows 更新上对生物识别驱动程序进行排名。
有关 INX 文件及其与 INF 文件的区别的信息,请参阅使用 INX 文件创建 INF 文件。
若要将 WBDI 驱动程序替换为旧驱动程序,请使用以下过程:
关闭所有当前处于活动状态的 WBF 应用程序。
卸载 WBDI 驱动程序。
停止 WBF 服务,重启该服务,然后再次停止该服务。
安装旧驱动程序。