WinBioAsyncOpenSession 関数 (winbio.h)
生体認証サービス プロバイダーと 1 つ以上の生体認証ユニットに非同期接続します。 Windows 10 ビルド 1607 以降では、この関数をモバイル イメージで使用できます。 成功した場合、関数は生体認証セッション ハンドルを返します。 このハンドルを使用して実行されるすべての操作は、 WinBioCloseSession を含む非同期的に完了し、 NotificationMethod パラメーターで指定されたメソッドを使用して結果がクライアント アプリケーションに返されます。
この関数の同期バージョンについては、「 WinBioOpenSession」を参照してください。
構文
HRESULT WinBioAsyncOpenSession(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[in] WINBIO_POOL_TYPE PoolType,
[in] WINBIO_SESSION_FLAGS Flags,
[in, optional] WINBIO_UNIT_ID *UnitArray,
[in, optional] SIZE_T UnitCount,
[in, optional] GUID *DatabaseId,
[in] WINBIO_ASYNC_NOTIFICATION_METHOD NotificationMethod,
[in, optional] HWND TargetWindow,
[in, optional] UINT MessageCode,
[in, optional] PWINBIO_ASYNC_COMPLETION_CALLBACK CallbackRoutine,
[in, optional] PVOID UserData,
[in] BOOL AsynchronousOpen,
[out, optional] WINBIO_SESSION_HANDLE *SessionHandle
);
パラメーター
[in] Factor
列挙 する 生体認証ユニットの種類を指定するWINBIO_BIOMETRIC_TYPE フラグのビットマスク。 現在、 WINBIO_TYPE_FINGERPRINT のみがサポートされています。
[in] PoolType
セッションで使用される生体認証ユニットの種類を指定する ULONG 値。 次のいずれかの値を指定できます。
値 | 説明 |
---|---|
|
セッションは、サービス プロバイダーによって管理される生体認証ユニットの共有コレクションに接続します。 |
|
セッションは、呼び出し元によって管理される生体認証ユニットのコレクションに接続します。 |
[in] Flags
新しいセッションの生体認証ユニットの構成とアクセス特性を指定する ULONG 値。 構成フラグは、セッション内のユニットの一般的な構成を指定します。 アクセス フラグは、アプリケーションで生体認証ユニットを使用する方法を指定します。 1 つの構成フラグを指定する必要がありますが、そのフラグを任意のアクセス フラグと組み合わせることができます。
値 | 説明 |
---|---|
|
グループ: 構成 生体認証ユニットは、インストール時に指定された方法で動作します。 PoolType パラメーターがWINBIO_POOL_SYSTEMされている場合は、この値を使用する必要があります。 |
|
グループ: 構成 生体認証ユニットは、基本的なキャプチャ デバイスとしてのみ動作します。 すべての処理、照合、およびストレージ操作は、ソフトウェア プラグインによって実行されます。 |
|
グループ: 構成 生体認証ユニットでは、内部処理とストレージ機能が使用されます。 |
|
グループ: アクセス クライアント アプリケーションは 、WinBioCaptureSample を使用して生の生体認証データをキャプチャします。 |
|
グループ: アクセス クライアントは、 WinBioControlUnitPrivileged を呼び出すことによって、生体認証ユニットに対してベンダー定義の制御操作を実行します。 |
[in, optional] UnitArray
セッションに含める生体認証ユニット識別子の配列へのポインター。 WinBioEnumBiometricUnits を呼び出して生体認証ユニットを列挙できます。 PoolType パラメーターがWINBIO_POOL_SYSTEM場合は、この値を NULL に設定します。
[in, optional] UnitCount
UnitArray パラメーターが指す配列内の要素の数を示す 値です。 PoolType パラメーターがWINBIO_POOL_SYSTEM場合は、この値を 0 に設定します。
[in, optional] DatabaseId
セッションで使用されるデータベースを示す 値。 PoolType パラメーターがWINBIO_POOL_PRIVATE場合は、インストールされているデータベースの GUID を指定する必要があります。 PoolType パラメーターがWINBIO_POOL_PRIVATEされていない場合は、次のいずれかの共通値を指定できます。
[in] NotificationMethod
この生体認証セッションでの非同期操作の完了通知をクライアント アプリケーションに配信する方法を指定します。 これは、次のいずれかの値である必要があります。
値 | 説明 |
---|---|
|
セッションは、アプリケーションによって定義されたコールバック関数を呼び出します。 |
|
セッションは、アプリケーションのメッセージ キューにウィンドウ メッセージを投稿します。 |
[in, optional] TargetWindow
完了通知を受け取るウィンドウのハンドル。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_MESSAGE に設定されていない限り、この値は無視されます。
[in, optional] MessageCode
フレームワークが完了通知を示すために送信する必要があるウィンドウ メッセージ コード。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_MESSAGE に設定されていない限り、この値は無視されます。 値は、0xBFFF WM_APP(0x8000) の範囲内である必要があります。
Windows 生体認証フレームワークは、メッセージの LPARAM 値を、操作の結果を含む WINBIO_ASYNC_RESULT 構造体のアドレスに設定します。 使用が完了したら、 WinBioFree を呼び出して構造体を解放する必要があります。
[in, optional] CallbackRoutine
セッション ハンドルを使用して操作が開始されたときに呼び出されるコールバック ルーチンのアドレス。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_CALLBACK に設定されていない限り、この値は無視されます。
[in, optional] UserData
呼び出し元によって提供されるバッファーのアドレス。 バッファーは、フレームワークまたは生体認証ユニットによって変更されません。 WINBIO_ASYNC_RESULT構造体で返されます。 アプリケーションはデータを使用して、完了通知の受信時に実行するアクションを決定したり、要求された操作に関する追加情報を保持したりするのに役立ちます。
[in] AsynchronousOpen
フレームワーク セッションが開かれるまでブロックするかどうかを指定します。 FALSE を指定すると、プロセスがブロックされます。 TRUE を指定すると、セッションが非同期で開かれます。
FALSE を指定してフレームワーク セッションを同期的に開くと、HRESULT 戻り値でこの関数によって、成功または失敗が呼び出し元に直接返されます。 セッションが正常に開かれた場合、アプリケーションが受け取る最初の非同期完了イベントは、フレームワークが開かれた後に要求された非同期操作に対して行われます。
フレームワーク セッションを非同期で開くために TRUE を 指定した場合、受信した最初の非同期完了通知はフレームワークを開くための通知になります。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_CALLBACK に設定されている場合、操作の結果は CallbackRoutine パラメーターで指定されたコールバック関数のWINBIO_ASYNC_RESULT構造体に配信されます。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_MESSAGE に設定されている場合、操作の結果は、ウィンドウ メッセージの LPARAM フィールドが指すWINBIO_ASYNC_RESULT構造体に配信されます。
[out, optional] SessionHandle
関数が成功しない場合、このパラメーターは NULL になります。
セッションが同期的に正常に開かれた場合、このパラメーターにはセッション ハンドルへのポインターが含まれます。
セッションを非同期で開くように指定した場合、このメソッドは直ちにを返します。セッション ハンドルは NULL になり、セッションが正常に開かれたかどうかを判断するには 、WINBIO_ASYNC_RESULT 構造体を調べる必要があります。
戻り値
関数が成功した場合は、S_OK を返します。 関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。
リターン コード | 説明 |
---|---|
|
生体認証セッションを作成するのに十分なメモリがありません。 |
|
通知メソッドを WINBIO_ASYNC_NOTIFY_MESSAGE に設定した場合、 TargetWindow パラメーターを NULL または HWND_BROADCAST にすることはできません。 MessageCode パラメーターを 0 (0) にすることはできません。 |
|
SessionHandle パラメーターと AsyncOpen パラメーターを設定する必要があります。
通知メソッドを WINBIO_ASYNC_NOTIFY_CALLBACK に設定する場合は、 CallbackRoutine パラメーターでコールバック関数のアドレスも指定する必要があります。 |
|
Flags パラメーターには、WINBIO_FLAG_RAWまたはWINBIO_FLAG_MAINTENANCE フラグが含まれており、呼び出し元にどちらのアクセス許可も付与されていません。 |
|
UnitArray パラメーターで指定された 1 つ以上の生体認証ユニット番号が無効です。 |
|
クライアント アプリケーションがリモート デスクトップ クライアントで実行されており、システム プール セッションを開こうとしています。 |
|
PoolType パラメーターは WINBIO_POOL_PRIVATE に設定されており、そのプール内の 1 つ以上の要求されたセンサーは使用できません。 |
|
現在の管理ポリシーでは、Windows 生体認証フレームワーク API の使用は禁止されています。 |
解説
WinBioAsyncOpenSession 関数によって返されるセッション ハンドルを使用して、次のいずれかの関数の非同期完了通知を生成できます。
- WinBioCancel
- WinBioCaptureSample
- WinBioCloseSession
- WinBioControlUnit
- WinBioControlUnitPrivileged
- WinBioDeleteTemplate
- WinBioEnrollBegin
- WinBioEnrollCapture
- WinBioEnrollCommit
- WinBioEnrollDiscard
- WinBioEnumEnrollments
- WinBioGetProperty
- WinBioIdentify
- WinBioLocateSensor
- WinBioLockUnit
- WinBioLogonIdentifiedUser
- WinBioRegisterEventMonitor
- WinBioUnlockUnit
- WinBioUnregisterEventMonitor
- WinBioVerify
- WinBioWait
- WinBioCaptureSampleWithCallback
- WinBioEnrollCaptureWithCallback
- WinBioIdentifyWithCallback
- WinBioIdentifyWithCallback
AsyncOpen パラメーターは、開いている操作がブロックされるかどうかを判断します。 このパラメーターは、セッション ハンドルを使用する後続の呼び出しの完了動作には影響しません。
AsyncOpen パラメーターを TRUE に設定すると、この関数は引数の初期検証を実行するとすぐにS_OKを返します。 その時点を超えて検出されたエラーは、 NotificationMethod パラメーターで指定されたメソッドを使用して呼び出し元に報告されます。 つまり、正常な戻り値は、 WinBioAsyncOpenSession パラメーターが正常であり、開いている操作が成功しなかったことを示すだけです。 開いている操作が成功したかどうかを判断するには、 WINBIO_ASYNC_RESULT 構造を調べる必要があります。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winbio.h (Winbio.h を含む) |
Library | Winbio.lib |
[DLL] | Winbio.dll |