função de retorno de chamada PIBIO_STORAGE_CLEAR_CONTEXT_FN (winbio_adapter.h)
Chamado pelo Windows Biometric Framework para preparar o pipeline de processamento da unidade biométrica para uma nova operação. Essa função deve liberar dados temporários do contexto do mecanismo e colocar o adaptador do mecanismo em um estado inicial bem definido.
Sintaxe
PIBIO_STORAGE_CLEAR_CONTEXT_FN PibioStorageClearContextFn;
HRESULT PibioStorageClearContextFn(
[in, out] PWINBIO_PIPELINE Pipeline
)
{...}
Parâmetros
[in, out] Pipeline
Ponteiro para a estrutura de WINBIO_PIPELINE associada à unidade biométrica que executa a operação.
Retornar valor
Se a função for bem-sucedida, ela retornará S_OK. Se a função falhar, ela deverá retornar um dos seguintes valores HRESULT para indicar o erro.
Código de retorno | Descrição |
---|---|
|
O argumento Pipeline não pode ser NULL. |
|
O membro StorageContext da estrutura WINBIO_PIPELINE apontada pelo argumento Pipeline é NULL. |
Comentários
Os seguintes itens de contexto do adaptador de armazenamento devem ser limpos:
- Conjunto de resultados – uma coleção de registros gerados pela operação de consulta de banco de dados mais recente.
- Cursor do conjunto de resultados – um indicador da posição atual dentro do conjunto de resultados. Isso é usado para iterar por meio do conjunto de resultados e disponibilizar registros individuais.
Exemplos
O pseudocódigo a seguir mostra uma possível implementação dessa função. O exemplo não é compilado. Você deve adaptá-lo para se adequar à sua finalidade.
/////////////////////////////////////////////////////////////////////////////////////////
//
// 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;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winbio_adapter.h (inclua Winbio_adapter.h) |