функция обратного вызова PIBIO_STORAGE_CLEAR_CONTEXT_FN (winbio_adapter.h)
Вызывается биометрической платформой Windows для подготовки конвейера обработки биометрической единицы для новой операции. Эта функция должна очищать временные данные из контекста подсистемы и переводить адаптер подсистемы в четко определенное начальное состояние.
Синтаксис
PIBIO_STORAGE_CLEAR_CONTEXT_FN PibioStorageClearContextFn;
HRESULT PibioStorageClearContextFn(
[in, out] PWINBIO_PIPELINE Pipeline
)
{...}
Параметры
[in, out] Pipeline
Указатель на структуру WINBIO_PIPELINE , связанную с биометрической единицей, выполняющей операцию.
Возвращаемое значение
Если функция выполняется успешно, она возвращает S_OK. Если функция завершается сбоем, она должна вернуть одно из следующих значений HRESULT , чтобы указать на ошибку.
Код возврата | Описание |
---|---|
|
Аргумент Pipeline не может иметь значение NULL. |
|
Элемент StorageContext структуры WINBIO_PIPELINE , на который указывает аргумент Pipeline, имеет значение NULL. |
Комментарии
Необходимо очистить следующие элементы контекста адаптера хранения:
- Результирующий набор — коллекция записей, созданных последней операцией запроса базы данных.
- Курсор результирующих наборов — индикатор текущей позиции в результирующем наборе. Используется для итерации по результирующем набору и доступности отдельных записей.
Примеры
В следующем псевдокоде показана одна из возможных реализаций этой функции. Пример не компилируется. Вы должны адаптировать его в соответствии с вашей целью.
/////////////////////////////////////////////////////////////////////////////////////////
//
// StorageAdapterClearContext
//
// Purpose:
// Prepare the processing pipeline of the biometric unit for a
// new operation.
//
// Parameters:
// Pipeline - Pointer to a WINBIO_PIPELINE structure associated with
// the biometric unit performing the operation.
//
static HRESULT
WINAPI
StorageAdapterClearContext(
__inout PWINBIO_PIPELINE Pipeline
)
{
HRESULT hr = S_OK;
// Verify that the Pipeline parameter is not NULL.
if (!ARGUMENT_PRESENT(Pipeline))
{
hr = E_POINTER;
goto cleanup;
}
// Retrieve the context from the pipeline.
PWINBIO_STORAGE_CONTEXT storageContext =
(PWINBIO_STORAGE_CONTEXT)Pipeline->StorageContext;
// Verify the pipeline state.
if (storageContext == NULL)
{
hr = WINBIO_E_INVALID_DEVICE_STATE;
goto cleanup;
}
// Release data structures attached to the context. The following
// example code shows how to release structures that will likely
// be associated with your adapter context.
_ResultSetClearContents(&storageContext->ResultSet);
if (storageContext->RawRecordData != NULL)
{
_AdapterRelease(storageContext->RawRecordData);
storageContext->RawRecordData = NULL;
storageContext->PayloadBlob = NULL;
}
if (storageContext->DecryptedTemplate != NULL)
{
SecureZeroMemory(
storageContext->DecryptedTemplate,
storageContext->DecryptedTemplateSize
);
_AdapterRelease(storageContext->DecryptedTemplate);
storageContext->DecryptedTemplate = NULL;
storageContext->DecryptedTemplateSize = 0;
}
// TODO: Release any other allocated data structures attached
// to the context (not shown).
cleanup:
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | winbio_adapter.h (включая Winbio_adapter.h) |