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.
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} ...
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
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.
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
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,,""
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 :
Fermez toutes les applications WBF actuellement actives.
Désinstallez le pilote WBDI.
Arrêtez le service WBF, redémarrez-le, puis arrêtez-le à nouveau.
Installez le pilote ancien.