Обучение
Модуль
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
В этой статье приведено руководство по установке биометрических устройств. Примеры кода в этой статье взяты из файла WudfBioUsbSample.inx WudfBioUsbSample.
Примечание
Поставщики могут предоставить файл (INF) для установки драйвера WBDI.
Драйверы 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 должны установить значение "Монопольное" равным 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 Update.
Сведения о файлах INX и их различиях от INF-файлов см. в использовании INX-файлов для создания INF-файлов.
Чтобы заменить драйвер WBDI устаревшим драйвером, используйте следующую процедуру:
Закройте все активные приложения WBF.
Удалите драйвер WBDI.
Остановите службу WBF, перезапустите ее, а затем снова остановите ее.
Установите устаревший драйвер.
Обучение
Модуль
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.