Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Chamado pela Estrutura Biométrica do Windows para recuperar uma cópia do conjunto de recursos ou modelo processado mais recentemente do mecanismo formatado como uma estrutura de WINBIO_BIR padrão.
Sintaxe
PIBIO_ENGINE_EXPORT_ENGINE_DATA_FN PibioEngineExportEngineDataFn;
HRESULT PibioEngineExportEngineDataFn(
[in, out] PWINBIO_PIPELINE Pipeline,
[in] WINBIO_BIR_DATA_FLAGS Flags,
[out] PWINBIO_BIR *SampleBuffer,
[out] PSIZE_T SampleSize
)
{...}
Parâmetros
[in, out] Pipeline
Ponteiro para uma estrutura WINBIO_PIPELINE associada à unidade biométrica que executa a operação.
[in] Flags
Um valor que especifica as propriedades da estrutura de WINBIO_BIR retornada pelo mecanismo. Isso pode ser um OR bit a bit dos seguintes sinalizadores de nível de segurança e processamento:
WINBIO_DATA_FLAG_PRIVACY
Os dados são criptografados.
WINBIO_DATA_FLAG_INTEGRITY Os dados são assinados digitalmente ou protegidos por um MAC (código de autenticação de mensagem).
WINBIO_DATA_FLAG_SIGNED Se esse sinalizador e a <marca>WINBIO_DATA_FLAG_INTEGRITY</sinalizador de marca> forem definidos, os dados serão assinados. Se esse sinalizador não estiver definido, mas a <marca>WINBIO_DATA_FLAG_INTEGRITY</sinalizador de marca> estiver definida, um MAC será computado.
WINBIO_DATA_FLAG_RAW Os dados estão no formato com o qual foram capturados.
WINBIO_DATA_FLAG_INTERMEDIATE Os dados não são brutos, mas não foram completamente processados.
WINBIO_DATA_FLAG_PROCESSED Os dados foram processados.
[out] SampleBuffer
Endereço de uma variável que recebe um ponteiro para uma estrutura WINBIO_BIR que contém o conjunto de recursos ou o modelo.
[out] SampleSize
Ponteiro para uma variável que contém o tamanho, em bytes, da estrutura de WINBIO_BIR retornada no parâmetro SampleBuffer .
Valor de retorno
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 | Description |
|---|---|
|
O adaptador do mecanismo não dá suporte à combinação de sinalizadores especificados pelo parâmetro Flags . |
|
Não há memória suficiente disponível para criar a estrutura WINBIO_BIR . |
|
Um parâmetro de ponteiro obrigatório é NULL. |
|
O pipeline não contém o tipo de dados exigido pelo parâmetro Flags . |
|
Este método não está implementado no momento. |
Observações
Você deve alocar o buffer a ser retornado no parâmetro SampleBuffer do heap de processo usando a função HeapAlloc . Depois que o buffer é criado, ele se torna a propriedade da Estrutura Biométrica do Windows. Como o Framework desaloca essa memória quando terminar de usá-la, sua implementação dessa função não deve tentar desalocar o buffer ou salvar um ponteiro nela. Ao não salvar o ponteiro, você impede que outras partes do adaptador do mecanismo tentem usar o buffer após o retorno dessa função.
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 atender à sua finalidade.
//////////////////////////////////////////////////////////////////////////////////////////
//
// EngineAdapterExportEngineData
//
// Purpose:
// Retrieves a copy of the most recently processed feature set or template.
//
// Parameters:
// Pipeline - Pointer to a WINBIO_PIPELINE structure associated
// with the biometric unit performing the operation
// Flags - Security and processing level flags
// SampleBuffer - Contains the feature set or template
// SampleSize - Size, in bytes, of the structure returned in the
// SampleBuffer parameter.
//
static HRESULT
WINAPI
EngineAdapterExportEngineData(
__inout PWINBIO_PIPELINE Pipeline,
__in WINBIO_BIR_DATA_FLAGS Flags,
__out PWINBIO_BIR *SampleBuffer,
__out PSIZE_T SampleSize
)
{
HRESULT hr = S_OK;
PWINBIO_BIR birAddress = NULL;
SIZE_T birSize = 0;
// Verify that pointer arguments are not NULL.
if (!ARGUMENT_PRESENT(Pipeline) ||
!ARGUMENT_PRESENT(SampleBuffer) ||
!ARGUMENT_PRESENT(SampleSize))
{
hr = E_POINTER;
goto cleanup;
}
// Retrieve the context from the pipeline.
PWINBIO_ENGINE_CONTEXT context =
(PWINBIO_ENGINE_CONTEXT)Pipeline->EngineContext;
// At least one processing level flag must be set. Your adapter can also
// place additional restrictions on supported export formats.
if (Flags & (WINBIO_DATA_FLAG_RAW |
WINBIO_DATA_FLAG_INTERMEDIATE |
WINBIO_DATA_FLAG_PROCESSED) == 0)
{
hr = E_INVALIDARG;
goto cleanup;
}
// You must implement the _CreateBirFromAdapterData function to extract
// data from the engine context and create a new WINBIO_BIR structure. The
// function passes ownership of the new biometric information record (BIR)
// to the EngineAdapterExportEngineData routine which then passes the BIR
// to the caller.
hr = _CreateBirFromAdapterData( context, Flags, &birAddress, &birSize);
if (SUCCEEDED(hr))
{
*SampleBuffer = birAddress;
*SampleSize = birSize;
}
cleanup:
return hr;
}
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows 7 [somente aplicativos da área de trabalho] |
| servidor com suporte mínimo | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
| da Plataforma de Destino | Windows |
| Header | winbio_adapter.h (inclua Winbio_adapter.h) |