Função WinBioEnumBiometricUnits (winbio.h)
Enumera todas as unidades biométricas anexadas que correspondem ao tipo de entrada.
Sintaxe
HRESULT WinBioEnumBiometricUnits(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[out] WINBIO_UNIT_SCHEMA **UnitSchemaArray,
[out] SIZE_T *UnitCount
);
Parâmetros
[in] Factor
Uma máscara de bits de sinalizadores WINBIO_BIOMETRIC_TYPE que especifica os tipos de unidade biométrica a serem enumerados. Somente WINBIO_TYPE_FINGERPRINT tem suporte no momento.
[out] UnitSchemaArray
Endereço de uma variável que recebe um ponteiro para uma matriz de estruturas WINBIO_UNIT_SCHEMA que contêm informações sobre cada unidade biométrica enumerada. Se a função não for bem-sucedida, o ponteiro será definido como NULL. Se a função for bem-sucedida, você deverá passar o ponteiro para WinBioFree para liberar a memória alocada internamente para a matriz.
[out] UnitCount
Ponteiro para um valor que especifica o número de estruturas apontadas pelo parâmetro UnitSchemaArray .
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 |
---|---|
|
A máscara de bits contida no parâmetro Factor contém um ou mais bits de tipo inválidos. |
|
Não havia memória suficiente para concluir a solicitação. |
|
Os parâmetros UnitSchemaArray e UnitCount não podem ser NULL. |
|
A política administrativa atual proíbe o uso da API do Windows Biometric Framework. |
Comentários
Somente WINBIO_TYPE_FINGERPRINT atualmente tem suporte no parâmetro Factor .
Se informações sobre várias unidades biométricas instaladas forem retornadas na matriz de estruturas apontadas pelo parâmetro UnitSchemaArray , não haverá garantia de que as unidades estejam em nenhuma ordem específica.
Depois de terminar de usar as estruturas retornadas para o parâmetro UnitSchemaArray , você deve chamar WinBioFree para liberar a memória alocada internamente para a matriz.
Se todos os bits de fator na máscara de bits Factor se referirem a tipos biométricos sem suporte, a função retornará S_OK mas o valor apontado pelo parâmetro UnitSchemaArray será NULL e o parâmetro UnitCount conterá zero. Embora não seja um erro perguntar sobre fatores biométricos sem suporte, o resultado da consulta será um conjunto vazio.
Exemplos
A função a seguir chama WinBioEnumBiometricUnits para enumerar as unidades biométricas instaladas. 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( )
{
// Declare variables.
HRESULT hr = S_OK;
PWINBIO_UNIT_SCHEMA unitSchema = NULL;
SIZE_T unitCount = 0;
SIZE_T index = 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"\n WinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
goto e_Exit;
}
// Display information for each installed biometric unit.
wprintf_s(L"\nSensors: \n");
for (index = 0; index < unitCount; ++index)
{
wprintf_s(L"\n[%d]: \tUnit ID: %d\n",
index,
unitSchema[index].UnitId );
wprintf_s(L"\tDevice instance ID: %s\n",
unitSchema[index].DeviceInstanceId );
wprintf_s(L"\tPool type: %d\n",
unitSchema[index].PoolType );
wprintf_s(L"\tBiometric factor: %d\n",
unitSchema[index].BiometricFactor );
wprintf_s(L"\tSensor subtype: %d\n",
unitSchema[index].SensorSubType );
wprintf_s(L"\tSensor capabilities: 0x%08x\n",
unitSchema[index].Capabilities );
wprintf_s(L"\tDescription: %s\n",
unitSchema[index].Description );
wprintf_s(L"\tManufacturer: %s\n",
unitSchema[index].Manufacturer );
wprintf_s(L"\tModel: %s\n",
unitSchema[index].Model );
wprintf_s(L"\tSerial no: %s\n",
unitSchema[index].SerialNumber );
wprintf_s(L"\tFirmware version: [%d.%d]\n",
unitSchema[index].FirmwareVersion.MajorVersion,
unitSchema[index].FirmwareVersion.MinorVersion);
}
e_Exit:
if (unitSchema != NULL)
{
WinBioFree(unitSchema);
unitSchema = NULL;
}
wprintf_s(L"\nPress any key to exit...");
_getch();
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 |