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 |
---|---|
|
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 |