Partager via


Installation d’un pilote biométrique

Cet article fournit des instructions pour l’installation des appareils biométriques. Les exemples de code de cet article sont extraits du fichier WudfBioUsbSample.inx du WudfBioUsbSample.

Remarque

Les fournisseurs peuvent fournir un fichier (.inf) pour installer un pilote WBDI.

  1. Les pilotes WBDI doivent spécifier une classe de « Biométrie ». Définissez ClassGuid égal à la valeur qui correspond à GUID_DEVCLASS_BIOMETRIC dans Devguid.h :

    [Version]
    ...
    Class=Biometric
    ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359}
    ...
    
  2. Dans votre section .HW, fournissez des directives AddReg pour spécifier trois sections qui contiennent des entrées à ajouter au Registre :

    [Biometric_Install.NT.hw]
    AddReg=Biometric_Device_AddReg
    AddReg=DriverPlugInAddReg, DatabaseAddReg
    
  3. Indiquez les sections nommées référencées dans la section .HW. La section [Biometric_Device_AddReg] configure les paramètres de l’appareil biométrique, y compris le drapeau d’exclusivité et le réveil ou l’inactivité du système/de l’appareil. Pour être reconnu par Windows Biometric Framework, les pilotes WBDI basés sur UMDF doivent définir la valeur « Exclusive » sur 1. Les deux premières lignes de la section [Biometric_Device_AddReg] spécifient les droits de liste de contrôle d’accès (ACL) afin que l’appareil puisse uniquement être ouvert par un administrateur ou le compte système local. Lorsque vous spécifiez ces droits de liste de contrôle d’accès, les applications tierces ne peuvent pas ouvrir l’appareil et capturer les données d’empreinte digitale lorsque le service WinBio n’est pas en cours d’exécution. Par exemple:

    [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 pilote WBDI qui expose des fonctionnalités à une pile biométrique ancienne (non WBDI) doit fixer la valeur Exclusive à zéro. Si cette valeur est définie sur zéro, l’infrastructure biométrique Windows ne tente pas de contrôler l’appareil et l’appareil n’est pas exposé via WBF.

    Les fournisseurs peuvent proposer un pilote binaire unique capable de fonctionner avec les piles existantes et le WBF, mais les deux ne peuvent pas fonctionner simultanément. WBF fonctionne uniquement si l’appareil peut être ouvert avec un accès exclusif.

  4. La deuxième section nommée contient les valeurs de registre pour les adaptateurs de plug-in. L’exemple utilise l’adaptateur de capteur fourni par Microsoft et l’adaptateur de stockage. Cette section permet également d'activer la prise en charge du journal Windows en définissant la valeur 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. Enfin, la troisième section définit les valeurs de Registre suivantes pour le service de base de données. Le GUID d’identification doit être unique pour chaque base de données fournisseur d’un certain format. Par exemple, dans cet exemple de code de l’exemple, remplacez 6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50 par votre propre GUID unique dans votre fichier 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. Pour différencier les pilotes WBDI et hérités, les fournisseurs doivent définir un score de fonctionnalité pour le pilote dans le fichier INX. Le score de la fonctionnalité n'est pas défini dans l'échantillon WudfBioUsbSample. Pour plus d’informations sur la définition d’un score de fonctionnalités, consultez Classement d’un pilote biométrique sur Windows Update.

Pour plus d’informations sur les fichiers INX et la façon dont ils diffèrent des fichiers INF, consultez Utilisation de fichiers INX pour créer des fichiers INF.

Remplacement d’un pilote WBDI par un ancien pilote

Pour remplacer un pilote WBDI par un pilote hérité, utilisez la procédure suivante :

  1. Fermez toutes les applications WBF actuellement actives.

  2. Désinstallez le pilote WBDI.

  3. Arrêtez le service WBF, redémarrez-le, puis arrêtez-le à nouveau.

  4. Installez le pilote ancien.