安装生物识别驱动程序

供应商可以提供 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 驱动程序替换为旧驱动程序,请使用以下过程:

  1. 关闭所有当前处于活动状态的 WBF 应用程序。

  2. 卸载 WBDI 驱动程序。

  3. 停止 WBF 服务,重启该服务,然后再次停止该服务。

  4. 安装旧驱动程序。