生体認証ドライバーのインストール
この記事では、生体認証デバイスのインストールに関するガイドラインを示します。 この記事のコード例は、WudfBioUsbSampleの WudfBioUsbSample.inx ファイルから取得されています。
手記
ベンダーは、WBDI ドライバーをインストールする (.inf) ファイルを提供できます。
WBDI ドライバーでは、"生体認証" のクラスを指定する必要があります。
ClassGuid
Devguid.h のGUID_DEVCLASS_BIOMETRIC
に対応する値に等しく設定します。[Version] ... Class=Biometric ClassGuid={53D29EF7-377C-4D14-864B-EB3A85769359} ...
あなたの.HW セクションでは、
AddReg
ディレクティブを指定して、レジストリに追加するエントリを含む 3 つのセクションを指定します。[Biometric_Install.NT.hw] AddReg=Biometric_Device_AddReg AddReg=DriverPlugInAddReg, DatabaseAddReg
.HWセクションで言及された名前付きセクションを提供してください。 [Biometric_Device_AddReg] セクションでは、排他フラグやシステム ウェイク/デバイスアイドル状態など、生体認証デバイスの値を設定します。 Windows 生体認証フレームワークで認識するには、UMDF ベースの WBDI ドライバーで "排他" 値を 1 に設定する必要があります。 [Biometric_Device_AddReg] セクションの最初の 2 行では、管理者またはローカル システム アカウントのみがデバイスを開くことができるように、アクセス制御リスト (ACL) 権限を指定します。 これらの ACL 権限を指定すると、WinBio サービスが実行されていない場合、サード パーティのアプリケーションはデバイスを開いて指紋データをキャプチャできません。 例えば:
[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
従来の (WBDI 以外の) 生体認証スタックに機能を公開する WBDI ドライバーでは、排他値を 0 に設定する必要があります。 この値が 0 に設定されている場合、Windows 生体認証フレームワークはデバイスの制御を試みず、デバイスは WBF を介して公開されません。
ベンダーは、レガシ スタックと WBF を操作できる 1 つのドライバー バイナリを持つことができますが、2 つを同時に動作させるわけではありません。 WBF は、デバイスを排他アクセスで開くことができる場合にのみ動作します。
2 番目の名前付きセクションには、プラグイン アダプターのレジストリ値が含まれています。 このサンプルでは、Microsoft が提供するセンサー アダプターとストレージ アダプターを使用します。 このセクションでは、SystemSensor の値を設定することで、Windows ログインのサポートも有効にします。
[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
最後に、3 番目のセクションでは、データベース サービスの次のレジストリ値を設定します。 識別 GUID は、特定の形式のベンダー データベースごとに一意である必要があります。 たとえば、サンプルのこのコード例では、6E9D4C5A-55B4-4c52-90B7-DDDC75CA4D50を INF ファイル内の独自の一意の GUID に変更します。
[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,,""
WBDI ドライバーとレガシ ドライバーを区別するには、ベンダーが INX ファイル内のドライバーの機能スコアを設定する必要があります。 機能スコアは、WudfBioUsbSample サンプルでは設定されていません。 機能スコアの設定の詳細については、「Windows Updateでの生体認証ドライバーのランク付け」を参照してください。
INXファイルとINFファイルの違いについては、INXファイルを使用してINFファイルを作成するを参照してください。
WBDI ドライバーをレガシードライバーに置き換える
WBDI ドライバーをレガシ ドライバーに置き換えるには、次の手順に従います。
現在アクティブなすべての WBF アプリケーションを閉じます。
WBDI ドライバーをアンインストールします。
WBF サービスを停止し、再起動してから、もう一度停止します。
レガシ ドライバーをインストールします。