Partilhar via


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:

  1. Feche todos os aplicativos WBF ativos no momento.

  2. Desinstale o driver WBDI.

  3. Pare o serviço WBF, reinicie-o e, em seguida, pare-o novamente.

  4. Instale o driver herdado.