次の方法で共有


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

このフレームワーク セッションでの非同期操作の完了通知をクライアント アプリケーションに配信する方法を指定します。 これは、次のいずれかの値である必要があります。

説明
WINBIO_ASYNC_NOTIFY_CALLBACK
フレームワークは、アプリケーションによって定義されたコールバック関数を呼び出します。
WINBIO_ASYNC_NOTIFY_MESSAGE
フレームワークは、アプリケーションのメッセージ キューにウィンドウ メッセージを投稿します。

[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 値」を参照してください。

リターン コード 説明
E_OUTOFMEMORY
フレームワーク セッションを作成するのに十分なメモリがありません。
E_INVALIDARG
通知メソッドを WINBIO_ASYNC_NOTIFY_MESSAGE に設定した場合、 TargetWindow パラメーターを NULL または HWND_BROADCAST にすることはできません。 MessageCode パラメーターを 0 (0) にすることはできません。
E_POINTER
FrameworkHandle パラメーターと AsyncOpen パラメーターを設定する必要があります。

通知メソッドを WINBIO_ASYNC_NOTIFY_CALLBACK に設定する場合は、 CallbackRoutine パラメーターでコールバック関数のアドレスも指定する必要があります。

解説

WinBioAsyncOpenFramework 関数によって返されるフレームワーク ハンドルを使用して、次の関数の非同期完了通知を生成できます。

AsyncOpen パラメーターは、開いている操作がブロックされるかどうかを判断します。 このパラメーターは、セッション ハンドルを使用する後続の呼び出しの完了動作には影響しません。

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

関連項目

WinBioAsyncOpenSession