Instalando um driver biométrico
Os fornecedores podem fornecer um arquivo INF para instalar um driver WBDI.
A seguir está uma lista de diretrizes para a instalação de dispositivos biométricos. Os exemplos de código neste artigo são retirados do arquivo WudfBioUsbSample.inx do WudfBioUsbSample:
Os drivers WBDI devem especificar uma classe de "Biometria". Defina ClassGuid igual ao valor que corresponde a GUID_DEVCLASS_BIOMETRIC em Devguid.h:
[Version] ... Class=Biometric ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359} ...
No seu . HW, forneça diretivas AddReg para especificar três seções que contêm entradas a serem adicionadas ao Registro:
[Biometric_Install.NT.hw] AddReg=Biometric_Device_AddReg AddReg=DriverPlugInAddReg, DatabaseAddReg
Forneça as seções nomeadas referidas no . Seção HW. A seção [Biometric_Device_AddReg] define valores para o dispositivo biométrico, incluindo o sinalizador exclusivo e a ativação do sistema/dispositivo ocioso. Para serem reconhecidos pelo Windows Biometric Framework, os drivers WBDI baseados em UMDF devem definir o valor "Exclusivo" como 1. As duas primeiras linhas da seção [Biometric_Device_AddReg] especificam direitos de lista de controle de acesso (ACL) para que o dispositivo só possa ser aberto por um administrador ou pela conta do sistema local. Quando você especifica esses direitos de ACL, aplicativos de terceiros não podem abrir o dispositivo e capturar dados de impressão digital quando o serviço WinBio não está em execução. Por exemplo:
[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
Um driver WBDI que expõe a funcionalidade a uma pilha biométrica herdada (não-WBDI) deve definir o valor Exclusive como zero. Se esse valor for definido como zero, o Windows Biometric Framework não tentará controlar o dispositivo e o dispositivo não será exposto por meio do WBF.
Os fornecedores podem ter um único binário de driver que pode trabalhar com pilhas herdadas e WBF, mas os dois não podem operar simultaneamente. O WBF só funcionará se o dispositivo puder ser aberto com acesso exclusivo.
A segunda seção nomeada contém valores do Registro para os adaptadores de plug-in. O exemplo usa o adaptador de sensor fornecido pela Microsoft e o adaptador de armazenamento. Esta seção também habilita o suporte a logon do Windows definindo o valor 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
Finalmente, a terceira seção define os seguintes valores do Registro para o serviço de banco de dados. O GUID de identificação deve ser exclusivo para cada banco de dados de fornecedor de um determinado formato. Por exemplo, neste exemplo de código do exemplo, altere 6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50 para seu próprio GUID exclusivo no arquivo 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,,""
Para diferenciar drivers WBDI e herdados, os fornecedores devem definir uma pontuação de recurso para o driver no arquivo INX. A pontuação do recurso não está definida no exemplo WudfBioUsbSample . Para obter mais informações sobre como definir uma pontuação de recurso, consulte Classificando um driver biométrico no Windows Update.
Para obter informações sobre arquivos INX e como eles diferem dos arquivos INF, consulte Usando arquivos INX para criar arquivos INF.
Para substituir um driver WBDI por um driver herdado, use o seguinte procedimento:
Feche todos os aplicativos WBF ativos no momento.
Desinstale o driver WBDI.
Pare o serviço WBF, reinicie-o e, em seguida, pare-o novamente.
Instale o driver herdado.