Partilhar via


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.

  1. Os drivers WBDI devem especificar uma classe de "Biometric." Defina ClassGuid igual ao valor que corresponde a GUID_DEVCLASS_BIOMETRIC no Devguid.h:

    [Version]
    ...
    Class=Biometric
    ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359}
    ...
    
  2. 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
    
  3. 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.

  4. 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
    
  5. 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,,""
    
  6. 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:

  1. Feche todos os aplicativos WBF ativos no momento.

  2. Desinstale o driver WBDI.

  3. Interrompa o serviço WBF, reinicie-o e, em seguida, interrompa-o novamente.

  4. Instale o driver legado.