PIBIO_ENGINE_CLEAR_CONTEXT_FN 콜백 함수(winbio_adapter.h)
새 작업을 위해 생체 인식 단위의 처리 파이프라인을 준비하기 위해 Windows 생체 인식 프레임워크에서 호출됩니다. 이 함수는 엔진 컨텍스트에서 임시 데이터를 플러시하고 엔진 어댑터를 잘 정의된 초기 상태로 전환해야 합니다.
구문
PIBIO_ENGINE_CLEAR_CONTEXT_FN PibioEngineClearContextFn;
HRESULT PibioEngineClearContextFn(
[in, out] PWINBIO_PIPELINE Pipeline
)
{...}
매개 변수
[in, out] Pipeline
작업을 수행하는 생체 인식 단위와 연결된 WINBIO_PIPELINE 구조체에 대한 포인터입니다.
반환 값
함수가 성공하면 S_OK를 반환합니다. 함수가 실패하는 경우 오류를 나타내려면 다음 HRESULT 값 중 하나를 반환해야 합니다.
반환 코드 | 설명 |
---|---|
|
Pipeline 인수는 NULL일 수 없습니다. |
설명
이 함수의 목적은 EngineAdapterAttach 함수를 호출한 직후의 상태로 컨텍스트를 다시 설정하는 것입니다. 컨텍스트는 재사용 가능한 구조체입니다. EngineAdapterClearContext 함수는 컨텍스트를 다시 초기화하지만 파이프라인에서 제거하지는 않습니다.
지워야 하는 엔진 어댑터 컨텍스트 영역에 있는 개체의 일반적인 예는 다음과 같습니다.
Object | Description |
---|---|
기능 집합 | 생체 인식 샘플에 대한 설명을 포함합니다. |
등록 | 등록 트랜잭션의 현재 상태를 추적합니다. |
템플릿 | 기능 집합 또는 등록 개체에서 만든 생체 인식 템플릿입니다. |
비교 | 템플릿과 기능 집합 간의 비교 결과를 포함합니다. |
인덱스 벡터 | 템플릿과 연결된 인덱스 값 집합을 포함합니다. |
예제
다음 의사 코드는 이 함수의 가능한 구현 중 하나를 보여 줍니다. 이 예제는 컴파일되지 않습니다. 목적에 맞게 조정해야 합니다.
//////////////////////////////////////////////////////////////////////////////////////////
//
// EngineAdapterClearContext
//
// Purpose:
// Prepares the processing pipeline of the biometric unit for a
// new operation.
//
// Parameters:
// Pipeline - Pointer to a WINBIO_PIPELINE structure associated with
// the biometric unit.
//
static HRESULT
WINAPI
EngineAdapterClearContext(
__inout PWINBIO_PIPELINE Pipeline
)
{
// Verify that the Pipeline parameter is not NULL.
if (!ARGUMENT_PRESENT(Pipeline))
{
hr = E_POINTER;
goto cleanup;
}
// Retrieve the context from the pipeline.
PWINBIO_ENGINE_CONTEXT context =
(PWINBIO_ENGINE_CONTEXT)Pipeline->EngineContext;
if (context == NULL)
{
goto cleanup;
}
// Change the engine adapter state and discard any partially completed
// operations. Depending on the adapter, this can involve changes to state
// variables or actions implemented in hardware. The following example
// assumes that your engine adapter context contains a ULONG data member
// and pointers to a feature set and an enrollment object.
context->SomeField = 0L;
if (context->FeatureSet != NULL)
{
// Zero the feature set if it contains unencrypted biometric data.
SecureZeroMemory(
context->FeatureSet,
context->FeatureSetSize);
// Release the feature set.
_AdapterRelease(context->FeatureSet);
context->FeatureSet = NULL;
context->FeatureSetSize = 0;
}
if (context->Enrollment.Template != NULL)
{
// Zero the template if it contains unencrypted biometric data.
SecureZeroMemory(
context->Enrollment.Template,
context->Enrollment.TemplateSize);
// Release the template.
_AdapterRelease(context->Enrollment.Template);
context->Enrollment.Template = NULL;
context->Enrollment.TemplateSize = 0;
// Release other data members attached to the enrollment object.
context->Enrollment.SampleCount = 0;
context->Enrollment.InProgress = FALSE;
}
cleanup:
return S_OK;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbio_adapter.h(Winbio_adapter.h 포함) |