функция обратного вызова 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 повторно инициализирует контекст, но не удаляет его из конвейера.
Ниже приведены типичные примеры объектов в области контекста адаптера подсистемы, которые должны быть очищены.
Объект | Описание |
---|---|
Набор возможностей | Содержит описание биометрического образца |
Регистрация | Отслеживает текущее состояние транзакции регистрации. |
Шаблон | Биометрический шаблон, созданный набором компонентов или объектом регистрации. |
Сравнение | Содержит результат сравнения между шаблоном и набором функций. |
Вектор индекса | Содержит набор значений индекса, связанных с шаблоном. |
Примеры
В следующем псевдокоде показана одна из возможных реализаций этой функции. Пример не компилируется. Вы должны адаптировать его в соответствии с вашей целью.
//////////////////////////////////////////////////////////////////////////////////////////
//
// 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 |
Header | winbio_adapter.h (включая Winbio_adapter.h) |