呼び出し元が生体認証ユニットに対して特権ベンダー定義の制御操作を実行できるようにします。 Windows 10 ビルド 1607 以降では、この関数はモバイル イメージで使用できます。 クライアントは、この関数を呼び出して、昇格されたアクセス権を必要とする拡張ベンダー操作を実行する必要があります。 権限が必要ない場合、クライアントは WinBioControlUnit 関数を呼び出すことができます。
構文
HRESULT WinBioControlUnitPrivileged(
[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値。 次のいずれかの値を指定できます。
| 価値 | Meaning |
|---|---|
|
センサー アダプターにコマンドを送信します。 |
|
エンジン アダプターにコマンドを送信します。 |
|
コマンドをストレージ アダプターに送信します。 |
[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 値」を参照してください。
| リターン コード | Description |
|---|---|
|
セッション ハンドルが無効です。 |
|
ControlCode パラメーターで指定された値が認識されません。 |
|
SendBuffer、ReceiveBuffer、ReceiveDataSize、OperationStatus パラメーターを NULL にすることはできません。 |
|
呼び出し元に操作を実行するアクセス許可がない、または セッションがWINBIO_FLAG_MAINTENANCEを使用して開かれていました。 |
|
ControlCode パラメーターで指定された値が認識されません。 |
|
UnitId パラメーターで指定された生体認証ユニットは、制御操作を実行する前にロックする必要があります。 |
注釈
プラグインを作成するベンダーは、特権を持つ拡張操作と、すべてのクライアントで使用できる拡張操作を決定する必要があります。 特権操作を実行するには、クライアント アプリケーションで WinBioControlUnitPrivileged 関数を呼び出す必要があります。 Windows 生体認証フレームワークでは、適切なアクセス権を持つクライアントのみがこの関数を呼び出すことができます。 特権を必要としない操作を実行するには、クライアントが WinBioControlUnit 関数を呼び出す必要があります。
WinBioControlUnitPrivileged を呼び出す前に、WinBioLockUnit を呼び出す必要があります。 WinBioLockUnit 関数は、ベンダー定義の操作を安全に実行できるロックされたリージョンを作成します。
この関数を正常に呼び出すには、 WINBIO_FLAG_MAINTENANCEを指定してセッション ハンドルを開く必要があります。 必要な特権を持つのは、管理者アカウントとローカル システム アカウントだけです。
WinBioControlUnitPrivileged を同期的に使用するには、WinBioOpenSession を呼び出して作成されたセッション ハンドルで関数を呼び出します。 この関数は、操作が完了するか、エラーが発生するまでブロックします。
WinBioControlUnitPrivileged を非同期的に使用するには、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 ポインターを返します。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 7 [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | winbio.h (Winbio.h を含む) |
| Library | Winbio.lib |
| DLL | Winbio.dll |