Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вызывается биометрической платформой Windows непосредственно перед удалением адаптера хранилища из конвейера обработки биометрической единицы. Эта функция предназначена для освобождения определенных ресурсов адаптера, подключенных к конвейеру.
Синтаксис
PIBIO_STORAGE_DETACH_FN PibioStorageDetachFn;
HRESULT PibioStorageDetachFn(
[in, out] PWINBIO_PIPELINE Pipeline
)
{...}
Параметры
[in, out] Pipeline
Указатель на структуру WINBIO_PIPELINE , связанную с биометрической единицей, выполняющей операцию.
Возвращаемое значение
Если функция выполняется успешно, она возвращает S_OK. Если функция завершается сбоем, она должна вернуть одно из следующих значений HRESULT , чтобы указать на ошибку.
| Код возврата | Описание |
|---|---|
|
Параметр Pipeline не может иметь значение NULL. |
|
Поле StorageContext структуры WINBIO_PIPELINE не может иметь значение NULL. |
Комментарии
Чтобы предотвратить утечку памяти, реализация функции StorageAdapterDetach должна освободить частную структуру WINBIO_STORAGE_CONTEXT , на которую указывает элемент StorageContext конвейера, а также любые другие ресурсы, подключенные к контексту хранилища.
Если при вызове этой функции поле StorageContext в объекте конвейера имеет значение NULL , конвейер не был инициализирован должным образом и необходимо вернуть WINBIO_E_INVALID_DEVICE_STATE , чтобы уведомить Windows Биометрическую платформу о проблеме.
Перед возвратом S_OK эта функция должна задать для поля StorageContext структуры WINBIO_PIPELINEзначение NULL , а для поля StorageHandle— значение INVALID_HANDLE_VALUE.
Примеры
В следующем псевдокоде показана одна из возможных реализаций этой функции. Пример не компилируется. Вы должны адаптировать его в соответствии с вашей целью.
/////////////////////////////////////////////////////////////////////////////////////////
//
// StorageAdapterDetach
//
// Purpose:
// Release adapter specific resources attached to the pipeline.
//
// Parameters:
// Pipeline - Pointer to a WINBIO_PIPELINE structure associated with
// the biometric unit performing the operation.
//
static HRESULT
WINAPI
StorageAdapterDetach(
__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)
{
// The pipeline state is not valid. This function should never
// be called if the storage context in the pipeline is already
// closed.
hr = WINBIO_E_INVALID_DEVICE_STATE;
goto cleanup;
}
// Release any structures attached to the context block.
StorageAdapterClearContext(Pipeline);
// Close the database.
StorageAdapterCloseDatabase(Pipeline);
// Remove the context from the pipeline.
Pipeline->StorageContext = NULL;
Pipeline->StorageHandle = INVALID_HANDLE_VALUE;
// Clear the result set. Depending on your implementation, this action
// can be performed by the StorageAdapterClearContext function called
// earlier.
ResultSetCleanup(&storageContext->ResultSet);
// Release the adapter context.
_AdapterRelease( storageContext );
storageContext = NULL;
cleanup:
return hr;
}
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 7 [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
| Целевая платформа | Windows |
| Header | winbio_adapter.h (включая Winbio_adapter.h) |