Instalar um driver biométrico
Este artigo fornece uma diretriz para a instalação biométrica do dispositivo. Os exemplos de códigos neste artigo são obtidos do arquivo WudfBioUsbSample.inx do WudfBioUsbSample.
Nota
Os fornecedores podem fornecer um arquivo (.inf) para instalar um driver WBDI.
Os drivers WBDI devem especificar uma classe de "Biometric." Defina
ClassGuid
igual ao valor que corresponde aGUID_DEVCLASS_BIOMETRIC
no Devguid.h:[Version] ... Class=Biometric ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359} ...
Em sua seção .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 mencionadas na 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 ACL (lista de controle de acesso) 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 Exclusivo como zero. Se esse valor for definido como zero, a Estrutura Biométrica do Windows não tentará controlar o dispositivo e o dispositivo não será exposto por meio do WBF.
Os fornecedores podem ter um driver binário único 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 de registro para os adaptadores de plug-in. O exemplo usa o adaptador de sensor e o adaptador de armazenamento fornecidos pela Microsoft. Esta seção também habilita o suporte ao 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
Por fim, a terceira seção define os seguintes valores de 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 caso de código, altere 6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50 para seu próprio GUID exclusivo no seu 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 o WBDI e os drivers herdados, os fornecedores devem definir uma Pontuação de Funcionalidade para o driver no arquivo INX. A Pontuação de Recursos não está definida no exemplo de WudfBioUsbSample. Para obter mais informações sobre como definir uma Pontuação de Características, consulte Avaliando 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.
Substituindo um driver WBDI por um driver herdado
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.
Interrompa o serviço WBF, reinicie-o e, em seguida, interrompa-o novamente.
Instale o driver legado.