Win32 API 日本語リファレンス
ホーム › Devices.BiometricFramework › PIBIO_ENGINE_CREATE_ENROLLMENT_FN

PIBIO_ENGINE_CREATE_ENROLLMENT_FN

コールバック

シグネチャ

HRESULT PIBIO_ENGINE_CREATE_ENROLLMENT_FN(
    WINBIO_PIPELINE* Pipeline
);

パラメーター

フィールド型説明
PipelineWINBIO_PIPELINE*操作を実行するバイオメトリック ユニットに関連付けられた WINBIO_PIPELINE 構造体へのポインター。

公式ドキュメント

バイオメトリック ユニット パイプライン内の登録オブジェクトを初期化するために、Windows Biometric Framework から呼び出されます。

戻り値

関数が成功した場合は S_OK を返します。関数が失敗した場合は、エラーを示すために次の HRESULT 値のいずれかを返す必要があります。

戻り値 説明
E_POINTER
Pipeline パラメーターを NULL にすることはできません。
E_OUTOFMEMORY
操作を完了するための十分なメモリがありません。

解説(Remarks)

EngineAdapterCommitEnrollment は、登録トランザクションの開始を示します。この関数が成功すると、Windows Biometric Framework は EngineAdapterUpdateEnrollment を呼び出して、1 つ以上の特徴セットを登録オブジェクトに追加します。その後、フレームワークは EngineAdapterCommitEnrollment または EngineAdapterDiscardEnrollment を呼び出してトランザクションを完了します。

例

次の擬似コードは、この関数の実装方法の一例を示しています。このコードはそのままではコンパイルできません。目的に合わせて変更して使用してください。

//////////////////////////////////////////////////////////////////////////////////////////
//
// EngineAdapterCreateEnrollment
//
// 目的:
//      バイオメトリック ユニット パイプライン内の登録オブジェクトを初期化する。
//
// パラメーター:
//      Pipeline    - 操作を実行するバイオメトリック ユニットに関連付けられた
//                    WINBIO_PIPELINE 構造体へのポインター
//
static HRESULT
WINAPI
EngineAdapterCreateEnrollment(
    __inout PWINBIO_PIPELINE Pipeline
    )
{
    HRESULT hr = S_OK;

    // Pipeline パラメーターが NULL でないことを確認します。
    if (!ARGUMENT_PRESENT(Pipeline))
    {
        hr = E_POINTER;
        goto cleanup;
    }

    // パイプラインからコンテキストを取得します。
    PWINBIO_ENGINE_CONTEXT context = 
           (PWINBIO_ENGINE_CONTEXT)Pipeline->EngineContext;

    // 登録が既に進行中の場合は処理を終了します。この例では、エンジン アダプターの
    // コンテキストに登録オブジェクトが含まれていることを前提としています。
    if (context->Enrollment.InProgress == TRUE)
    {
        hr = WINBIO_E_INVALID_DEVICE_STATE;
        goto cleanup;
    }

    // カスタム関数 (_AdapterCreateEnrollmentTemplate) を呼び出して新しい登録
    // テンプレートを作成し、エンジン アダプターのコンテキストに関連付けます。
    hr = _AdapterCreateEnrollmentTemplate( 
            context, 
            &context->Enrollment
            );
    if (FAILED(hr))
    {
        goto cleanup;
    }

    // _AdapterCreateEnrollmentTemplate 関数で初期化されなかった Enrollment の
    // データ メンバーを初期化します。この例では、登録オブジェクトに少なくとも
    // 生体サンプルの数を示すフィールドと、新しい登録が進行中かどうかを示す
    // フィールドが含まれていることを前提としています。
    context->Enrollment.SampleCount = 0;
    context->Enrollment.InProgress = TRUE;

cleanup:

    return hr;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)