WinBioAsyncOpenFramework 関数 (winbio.h)
生体認証フレームワークへのハンドルを開きます。 Windows 10 ビルド 1607 以降では、この関数をモバイル イメージで使用できます。 このハンドルを使用すると、生体認証ユニット、データベース、サービス プロバイダーを非同期的に列挙したり、生体認証ユニットがコンピューターにアタッチされたり削除されたりしたときに非同期通知を受信したりすることができます。
構文
HRESULT WinBioAsyncOpenFramework(
[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] WINBIO_FRAMEWORK_HANDLE *FrameworkHandle
);
パラメーター
[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] FrameworkHandle
関数が成功しない場合、このパラメーターは NULL になります。
セッションが同期的に正常に開かれた場合、このパラメーターにはセッション ハンドルへのポインターが含まれます。
セッションを非同期で開くように指定した場合、このメソッドは直ちにを返します。セッション ハンドルは NULL になり、セッションが正常に開かれたかどうかを判断するには 、WINBIO_ASYNC_RESULT 構造体を調べる必要があります。
戻り値
関数が成功した場合は、S_OK を返します。 関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。
リターン コード | 説明 |
---|---|
|
フレームワーク セッションを作成するのに十分なメモリがありません。 |
|
通知メソッドを WINBIO_ASYNC_NOTIFY_MESSAGE に設定した場合、 TargetWindow パラメーターを NULL または HWND_BROADCAST にすることはできません。 MessageCode パラメーターを 0 (0) にすることはできません。 |
|
FrameworkHandle パラメーターと AsyncOpen パラメーターを設定する必要があります。
通知メソッドを WINBIO_ASYNC_NOTIFY_CALLBACK に設定する場合は、 CallbackRoutine パラメーターでコールバック関数のアドレスも指定する必要があります。 |
解説
WinBioAsyncOpenFramework 関数によって返されるフレームワーク ハンドルを使用して、次の関数の非同期完了通知を生成できます。
- WinBioAsyncEnumBiometricUnits
- WinBioAsyncEnumDatabases
- WinBioAsyncEnumServiceProviders
- WinBioAsyncMonitorFrameworkChanges
AsyncOpen パラメーターを TRUE に設定すると、この関数は引数の初期検証を実行するとすぐにS_OKを返します。 その時点を超えて検出されたエラーは、 NotificationMethod パラメーターで指定されたメソッドを使用して呼び出し元に報告されます。 つまり、成功した戻り値は、 WinBioAsyncOpenFramework パラメーターが問題なく、開いている操作が成功したことを示すだけです。 開いている操作が成功したかどうかを判断するには、 WINBIO_ASYNC_RESULT 構造を調べる必要があります。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winbio.h (Winbio.h を含む) |
Library | Winbio.lib |
[DLL] | Winbio.dll |