Função WinBioFree (winbio.h)

Libera memória alocada para o aplicativo cliente por uma chamada anterior para uma função de API do Windows Biométrico Framework. A partir do Windows 10, build 1607, essa função está disponível para uso com uma imagem móvel.

Sintaxe

HRESULT WinBioFree(
  [in] PVOID Address
);

Parâmetros

[in] Address

Endereço do bloco de memória a ser excluído.

Retornar valor

Se a função for bem-sucedida, ela retornará S_OK. Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Código de retorno Descrição
E_POINTER
O parâmetro Address não pode ser NULL.

Comentários

Várias funções na API da Estrutura Biométrica do Windows alocam memória para o aplicativo cliente e passam o endereço dessa memória para o cliente. Para evitar vazamentos de memória, você deve chamar WinBioFree para excluir o bloco quando terminar de usar as informações que ele contém. Você exclui a memória passando seu endereço para WinBioFree. Você pode encontrar o endereço des referenciando o ponteiro especificado pelo parâmetro apropriado em cada uma das funções a seguir.

Função Parâmetro Tipo de bloco alocado
WinBioCaptureSample Amostra Estrutura
WinBioEnumBiometricUnits UnitSchemaArray Matriz de estruturas
WinBioEnumDatabases StorageSchemaArray Matriz de estruturas
WinBioEnumEnrollments SubFactorArray Matriz de inteiros
WinBioEnumServiceProviders BspSchemaArray Matriz de estruturas
EventCallBack Evento Estrutura
CaptureCallback Amostra Estrutura
 

Exemplos

A função a seguir chama WinBioEnumBiometricUnits para enumerar os sensores biométricos instalados e chama WinBioFree para liberar a memória criada por WinBioEnumBiometricUnits. Link para a biblioteca estática Winbio.lib e inclua os seguintes arquivos de cabeçalho:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumerateSensors( )
{
    HRESULT hr = S_OK;
    PWINBIO_UNIT_SCHEMA unitSchema = NULL;
    SIZE_T unitCount = 0;

    // Enumerate the installed biometric units.
    hr = WinBioEnumBiometricUnits( 
            WINBIO_TYPE_FINGERPRINT,        // Type of biometric unit
            &unitSchema,                    // Array of unit schemas
            &unitCount );                   // Count of unit schemas

    if (FAILED(hr))
    {
        wprintf_s(L"\nWinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

e_Exit:

    // Free memory.
    if (unitSchema != NULL)
    {
        WinBioFree(unitSchema);
        unitSchema = NULL;
    }

    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.h (inclua Winbio.h)
Biblioteca Winbio.lib
DLL Winbio.dll

Confira também

WinBioCaptureSample

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders