ホーム › Devices.BiometricFramework › PIBIO_SENSOR_CLEAR_CONTEXT_FN
PIBIO_SENSOR_CLEAR_CONTEXT_FN
コールバックシグネチャ
HRESULT PIBIO_SENSOR_CLEAR_CONTEXT_FN(
WINBIO_PIPELINE* Pipeline
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| Pipeline | WINBIO_PIPELINE* | 操作を実行するバイオメトリック ユニットに関連付けられた WINBIO_PIPELINE 構造体へのポインター。 |
公式ドキュメント
Windows Biometric Framework によって呼び出され、バイオメトリック ユニットの処理パイプラインを新しい操作に向けて準備します。この関数は、センサー コンテキストから一時データをフラッシュし、センサー アダプターを明確に定義された初期状態にする必要があります。
戻り値
関数が成功すると、S_OK を返します。関数が失敗した場合は、エラーを示すために次の HRESULT 値のいずれかを返す必要があります。
| 戻り値 | 説明 |
|---|---|
| Pipeline 引数を NULL にすることはできません。 |
解説(Remarks)
SensorAdapterClearContext 関数の実装では、サンプル バッファーをクリアする必要があります。
例
次の擬似コードは、この関数の実装例の 1 つを示しています。この例はコンパイルできません。目的に合わせて適宜変更してください。
//////////////////////////////////////////////////////////////////////////////////////////
//
// SensorAdapterClearContext
//
// 目的:
// 処理パイプラインを新しい操作に向けて準備します。この関数は、
// センサー コンテキストから一時データをフラッシュし、センサー
// アダプターを明確に定義された初期状態にする必要があります。
//
// パラメーター:
// Pipeline - バイオメトリック ユニットに関連付けられた
// WINBIO_PIPELINE 構造体へのポインター。
//
static HRESULT
WINAPI
SensorAdapterClearContext(
__inout PWINBIO_PIPELINE Pipeline
)
{
// Pipeline パラメーターが NULL でないことを確認します。
if (!ARGUMENT_PRESENT(Pipeline))
{
hr = E_POINTER;
goto cleanup;
}
// パイプラインからコンテキストを取得します。
PWINBIO_SENSOR_CONTEXT sensorContext =
(PWINBIO_SENSOR_CONTEXT)Pipeline->SensorContext;
// センサーの現在の状態を検証します。
if (sensorContext == NULL)
{
return WINBIO_E_INVALID_DEVICE_STATE;
}
// センサー アダプターの状態を変更し、途中まで完了している操作を破棄します。
// アダプターによっては、状態変数の変更やハードウェアで実装された
// 動作が必要になる場合があります。次の例では、センサー アダプター
// コンテキストに ULONG のデータ メンバーと、キャプチャ バッファーおよび
// 属性バッファーへのポインターが含まれていることを前提としています。
sensorContext->SomeField = 0L;
if (sensorContext->CaptureBuffer != NULL)
{
// キャプチャ バッファーをゼロで埋めます。
SecureZeroMemory(
sensorContext->CaptureBuffer,
sensorContext->CaptureBufferSize);
// キャプチャ バッファーを解放します。
_AdapterRelease(sensorContext->CaptureBuffer);
sensorContext->CaptureBuffer = NULL;
sensorContext->CaptureBufferSize = 0;
}
if (sensorContext->AttributesBuffer != NULL)
{
// 属性バッファーをゼロで埋めます。
SecureZeroMemory(
sensorContext->AttributesBuffer,
sensorContext->AttributesBufferSize);
// 属性バッファーを解放します。
_AdapterRelease(sensorContext->AttributesBuffer);
sensorContext->AttributesBuffer = NULL;
sensorContext->AttributesBufferSize = 0;
}
// TODO: センサー コンテキストのクリアに必要なその他の処理を実行します。
return S_OK;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)