Поделиться через


Установка биометрического драйвера

В этой статье приведено руководство по установке биометрических устройств. Примеры кода в этой статье взяты из файла WudfBioUsbSample.inx WudfBioUsbSample.

Заметка

Поставщики могут предоставить файл (INF) для установки драйвера WBDI.

  1. Драйверы WBDI должны указывать класс "Биометрические данные". Задайте ClassGuid равным значению, которое соответствует GUID_DEVCLASS_BIOMETRIC в Devguid.h:

    [Version]
    ...
    Class=Biometric
    ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359}
    ...
    
  2. В вашем разделе .HW укажите директивы AddReg, чтобы указать три раздела, содержащие записи, которые должны быть добавлены в реестр.

    [Biometric_Install.NT.hw]
    AddReg=Biometric_Device_AddReg
    AddReg=DriverPlugInAddReg, DatabaseAddReg
    
  3. Укажите именованные разделы, упомянутые в разделе .HW. В разделе [Biometric_Device_AddReg] задаются значения для биометрического устройства, включая исключительный флаг и системное пробуждение/простой устройства. Чтобы быть распознанным в Windows Биометрической платформе, драйверы WBDI на основе UMDF должны установить значение "Монопольное" равным 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) биометрической системы, должен установить значение параметра Exclusive в ноль. Если это значение равно нулю, биометрическая платформа Windows не пытается контролировать устройство, и устройством нельзя управлять через WBF.

    Поставщики могут иметь один двоичный файл драйвера, который может работать с устаревшими стеками и WBF, но они не могут работать одновременно. WBF будет работать только в том случае, если устройство можно открыть с эксклюзивным доступом.

  4. Второй именованный раздел содержит значения реестра для адаптеров плагинов. В этом примере используется адаптер датчика, предоставленный Корпорацией Майкрософт, и адаптер хранилища. В этом разделе также включена поддержка входа Windows, задав значение SystemSensor:

    [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
    
  5. Наконец, третий раздел задает следующие значения реестра для службы базы данных. Идентификатор GUID должен быть уникальным для каждой базы данных поставщика определенного формата. Например, в этом примере кода измените 6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50 на собственный уникальный GUID в INF-файле.

    [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,,""
    
  6. Чтобы отличить WBDI и устаревшие драйверы, поставщики должны задать оценку компонентов для драйвера в INX-файле. Оценка функции не задана в примере WudfBioUsbSample. Дополнительные сведения о настройке оценки функции см. в статье Ранжирование биометрического драйвера в Windows Update.

Сведения о файлах INX и их различиях от INF-файлов см. в использовании INX-файлов для создания INF-файлов.

Замена драйвера WBDI устаревшим драйвером

Чтобы заменить драйвер WBDI устаревшим драйвером, используйте следующую процедуру:

  1. Закройте все активные приложения WBF.

  2. Удалите драйвер WBDI.

  3. Остановите службу WBF, перезапустите ее, а затем снова остановите ее.

  4. Установите устаревший драйвер.