Installazione di un driver biometrico
Questo articolo fornisce linee guida per l'installazione biometrica del dispositivo. Gli esempi di codice in questo articolo sono tratti dal file WudfBioUsbSample.inx del WudfBioUsbSample.
Nota
I fornitori possono fornire un file (con estensione inf) per installare un driver WBDI.
I driver WBDI devono specificare una classe "Biometric". Impostare
ClassGuid
uguale al valore che corrisponde aGUID_DEVCLASS_BIOMETRIC
in Devguid.h:[Version] ... Class=Biometric ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359} ...
Nella sezione .HW, fornire direttive
AddReg
per specificare tre sezioni contenenti voci da aggiungere al Registro di sistema.[Biometric_Install.NT.hw] AddReg=Biometric_Device_AddReg AddReg=DriverPlugInAddReg, DatabaseAddReg
Fornire le sezioni denominate a cui si fa riferimento nella sezione HW. La sezione [Biometric_Device_AddReg] imposta i valori per il dispositivo biometrico, inclusi il flag esclusivo e la riattivazione del sistema/inattività del dispositivo. Per essere riconosciuto da Windows Biometric Framework, i driver WBDI basati su UMDF devono impostare il valore "Esclusivo" su 1. Le prime due righe della sezione [Biometric_Device_AddReg] specificano i diritti dell'elenco di controllo di accesso (ACL) in modo che il dispositivo possa essere aperto solo da un amministratore o dall'account di sistema locale. Quando specifichi questi diritti ACL, le applicazioni di terze parti non possono aprire il dispositivo e acquisire i dati delle impronte digitali quando il servizio WinBio non è in esecuzione. Per esempio:
[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
Un driver WBDI che espone la funzionalità a uno stack biometrico legacy (non WBDI) deve impostare il valore di Esclusivo a zero. Se questo valore è impostato su zero, Windows Biometric Framework non tenta di controllare il dispositivo e il dispositivo non viene esposto tramite WBF.
I fornitori possono avere un unico file binario del driver che può funzionare con le stack legacy e WBF, ma i due non possono operare contemporaneamente. WBF funzionerà solo se il dispositivo può essere aperto con accesso esclusivo.
La seconda sezione denominata contiene i valori del Registro di sistema per gli adattatori plug-in. L'esempio usa l'adattatore del sensore e l'adattatore di archiviazione forniti da Microsoft. Questa sezione abilita anche il supporto per l'accesso di Windows impostando il valore 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
Infine, la terza sezione imposta i valori del Registro di sistema seguenti per il servizio di database. Il GUID di identificazione deve essere univoco per ogni database fornitore di un determinato formato. Ad esempio, in questo esempio di codice, modificare 6E9D4C5A-55B4-4C52-90B7-DDDC75CA4D50 in un GUID univoco nel file 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,,""
Per distinguere I driver WBDI e legacy, i fornitori devono impostare un punteggio di funzionalità per il driver nel file INX. Il punteggio delle funzionalità non è impostato nel campione WudfBioUsbSample. Per altre informazioni sull'impostazione di un punteggio di funzionalità, vedere Classificazione di un driver biometrico in Windows Update.
Per informazioni sui file INX e su come differiscono dai file INF, vedere Uso di file INX per creare file INF.
Sostituzione di un driver WBDI con un driver legacy
Per sostituire un driver WBDI con un driver legacy, seguire questa procedura:
Chiudere tutte le applicazioni WBF attualmente attive.
Disinstallare il driver WBDI.
Arrestare il servizio WBF, riavviarlo e quindi arrestarlo di nuovo.
Installare il driver legacy.