生体認証フレームワークへのハンドルを開きます。 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
このフレームワーク セッションでの非同期操作の完了通知をクライアント アプリケーションに配信する方法を指定します。 これは、次のいずれかの値である必要があります。
| 価値 | Meaning |
|---|---|
|
フレームワークは、アプリケーションによって定義されたコールバック関数を呼び出します。 |
|
フレームワークは、ウィンドウ メッセージをアプリケーションのメッセージ キューに投稿します。 |
[in, optional] TargetWindow
完了通知を受け取るウィンドウのハンドル。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_MESSAGE に設定されていない限り、この値は無視されます。
[in, optional] MessageCode
完了通知を示すためにフレームワークが送信する必要があるウィンドウ メッセージ コード。 NotificationMethod パラメーターが WINBIO_ASYNC_NOTIFY_MESSAGE に設定されていない限り、この値は無視されます。 値は、 0xBFFFするWM_APP (0x8000) の範囲内である必要があります。
Windows 生体認証フレームワークは、操作の結果を含むWINBIO_ASYNC_RESULT構造体のアドレスにメッセージの LPARAM 値を設定します。 使用が完了したら、 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 値」を参照してください。
| リターン コード | Description |
|---|---|
|
フレームワーク セッションを作成するのに十分なメモリがありません。 |
|
通知メソッドを WINBIO_ASYNC_NOTIFY_MESSAGEに設定した場合、 TargetWindow パラメーターを NULL または HWND_BROADCAST にすることはできません。 MessageCode パラメーターを 0 (0) にすることはできません。 |
|
FrameworkHandle パラメーターと AsynchronousOpen パラメーターを設定する必要があります。
通知メソッドを WINBIO_ASYNC_NOTIFY_CALLBACKに設定する場合は、 CallbackRoutine パラメーターでコールバック関数のアドレスも指定する必要があります。 |
注釈
WinBioAsyncOpenFramework 関数によって返されるフレームワーク ハンドルを使用して、次の関数の非同期完了通知を生成できます。
- WinBioAsyncEnumBiometricUnits
- WinBioAsyncEnumDatabases
- WinBioAsyncEnumServiceProviders
- WinBioAsyncMonitorFrameworkChanges
AsynchronousOpen パラメーターを TRUE に設定すると、この関数は引数の初期検証を実行するとすぐにS_OKを返します。 その時点を超えて検出されたエラーは、 NotificationMethod パラメーターで指定されたメソッドを使用して呼び出し元に報告されます。 つまり、成功した戻り値は、 WinBioAsyncOpenFramework パラメーターが正常であり、開いている操作が成功したことを示すだけであることを示します。 開いている操作が成功したかどうかを判断するには、 WINBIO_ASYNC_RESULT 構造を調べる必要があります。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 8 [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | winbio.h (Winbio.h を含む) |
| Library | Winbio.lib |
| DLL | Winbio.dll |