Share via


WinBioControlUnit 関数 (winbio.h)

呼び出し元が生体認証ユニットに対してベンダー定義の制御操作を実行できるようにします。 ビルド 1607 Windows 10以降、この関数はモバイル イメージで使用できます。 この関数は、昇格された特権が必要ない拡張ベンダー操作にアクセスするために提供されます。 アクセス権が必要な場合は、 WinBioControlUnitPrivileged 関数を 呼び出します。

構文

HRESULT WinBioControlUnit(
  [in]            WINBIO_SESSION_HANDLE SessionHandle,
  [in]            WINBIO_UNIT_ID        UnitId,
  [in]            WINBIO_COMPONENT      Component,
  [in]            ULONG                 ControlCode,
                  PUCHAR                SendBuffer,
  [in]            SIZE_T                SendBufferSize,
                  PUCHAR                ReceiveBuffer,
  [in]            SIZE_T                ReceiveBufferSize,
                  SIZE_T                *ReceiveDataSize,
  [out, optional] ULONG                 *OperationStatus
);

パラメーター

[in] SessionHandle

開いている生体認証セッションを識別する WINBIO_SESSION_HANDLE 値。 WinBioOpenSession を呼び出して、同期セッション ハンドルを開きます。 WinBioAsyncOpenSession を呼び出して非同期セッション ハンドルを開きます。

[in] UnitId

生体認証ユニットを識別する WINBIO_UNIT_ID 値。 この値は、 WinBioLockUnit 関数で以前に使用したユニット ID に対応している必要があります。

[in] Component

操作 実行する必要がある生体認証ユニット内のコンポーネントを指定するWINBIO_COMPONENT値。 次のいずれかの値を指定できます。

意味
WINBIO_COMPONENT_SENSOR
センサー アダプターにコマンドを送信します。
WINBIO_COMPONENT_ENGINE
エンジン アダプターにコマンドを送信します。
WINBIO_COMPONENT_STORAGE
コマンドをストレージ アダプターに送信します。

[in] ControlCode

UnitId パラメーターで指定された生体認証ユニットと、Component パラメーターで指定されたアダプターによって認識されるベンダー定義コード。

SendBuffer

Component パラメーターで指定されたアダプターに送信される制御情報を含むバッファーのアドレス。 バッファーの形式と内容はベンダー定義です。

[in] SendBufferSize

SendBuffer パラメーターで指定されたバッファーのサイズ (バイト単位)。

ReceiveBuffer

Component パラメーターで指定されたアダプターによって送信される情報を受信するバッファーのアドレス。 バッファーの形式と内容はベンダー定義です。

[in] ReceiveBufferSize

ReceiveBuffer パラメーターで指定されたバッファーのサイズ (バイト単位)。

ReceiveDataSize

ReceiveBuffer パラメーターで指定されたバッファーに書き込まれたデータのサイズ (バイト単位) を含むSIZE_T値へのポインター。

[out, optional] OperationStatus

制御操作の結果を指定するベンダー定義の状態コードを含む整数へのポインター。

戻り値

関数が成功した場合は、S_OK を返します。 関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。

リターン コード 説明
E_HANDLE
セッション ハンドルが無効です。
E_INVALIDARG
ControlCode パラメーターで指定された値が認識されません。
E_POINTER
SendBufferReceiveBufferReceiveDataSizeOperationStatus パラメーターを NULL にすることはできません。
WINBIO_E_INVALID_CONTROL_CODE
ControlCode パラメーターで指定された値が認識されません。
WINBIO_E_LOCK_VIOLATION
UnitId パラメーターで指定された生体認証ユニットは、制御操作を実行する前にロックする必要があります。

注釈

WinBioControlUnit を呼び出す前に、WinBioLockUnit を呼び出す必要があります。 WinBioLockUnit 関数は、ベンダー定義の操作を安全に実行できるロックされた領域を作成します。

プラグインを作成するベンダーは、特権を持つ拡張操作と、すべてのクライアントで使用できる拡張操作を決定する必要があります。 特権操作を実行するには、クライアント アプリケーションで WinBioControlUnitPrivileged 関数を呼び出す必要があります。 Windows 生体認証フレームワークでは、 WinBioControlUnitPrivileged を呼び出す適切なアクセス権を持つクライアントのみが許可されます。

WinBioControlUnit を同期的に使用するには、WinBioOpenSession を呼び出して作成されたセッション ハンドルで 関数を呼び出します。 関数は、操作が完了するか、エラーが発生するまでブロックします。

WinBioControlUnit を非同期的に使用するには、WinBioAsyncOpenSession を呼び出して作成されたセッション ハンドルで 関数を呼び出します。 フレームワークは 、WINBIO_ASYNC_RESULT 構造体を割り当て、それを使用して操作の成功または失敗に関する情報を返します。 WINBIO_ASYNC_RESULT構造体は、WinBioAsyncOpenSession 関数の NotificationMethod パラメーターで設定した値に応じて、アプリケーション コールバックまたはアプリケーション メッセージ キューに返されます。

  • コールバックを使用して完了通知を受け取る場合は、 PWINBIO_ASYNC_COMPLETION_CALLBACK 関数を実装し、 NotificationMethod パラメーターを WINBIO_ASYNC_NOTIFY_CALLBACK に設定する必要があります。
  • アプリケーション メッセージ キューを使用して完了通知を受け取る場合は、 NotificationMethod パラメーターを WINBIO_ASYNC_NOTIFY_MESSAGE に設定する必要があります。 フレームワークは、ウィンドウ メッセージの LPARAM フィールドへのWINBIO_ASYNC_RESULT ポインターを返します。
メモリ リークを防ぐには、 WinBioFree を呼び出して 、使用 を完了した後でWINBIO_ASYNC_RESULT構造体を解放する必要があります。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winbio.h (Winbio.h を含む)
Library Winbio.lib
[DLL] Winbio.dll

こちらもご覧ください

WinBioControlUnitPrivileged

WinBioLockUnit