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


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

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

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

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

    [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 Биометрической платформы драйверы WBDI на основе UMDF должны задать значение "Exclusive" равным 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 будет работать, только если устройство можно открыть с монопольным доступом.

  • Второй именованный раздел содержит значения реестра для подключаемых адаптеров. В примере используется предоставленный корпорацией Майкрософт адаптер датчика и адаптер хранилища. В этом разделе также включается поддержка входа 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
    
  • Наконец, третий раздел задает следующие значения реестра для службы базы данных. Идентификатор 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,,""
    
  • Чтобы различать WBDI и устаревшие драйверы, поставщики должны задать оценку компонентов для драйвера в INX-файле. Оценка компонентов не задана в примере WudfBioUsbSample . Дополнительные сведения о настройке оценки признаков см. в статье Ранжирование биометрического драйвера на клиентский компонент Центра обновления Windows.

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

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

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

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

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

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