Función WinBioEnumBiometricUnits (winbio.h)
Enumera todas las unidades biométricas adjuntas que coinciden con el tipo de entrada.
Sintaxis
HRESULT WinBioEnumBiometricUnits(
[in] WINBIO_BIOMETRIC_TYPE Factor,
[out] WINBIO_UNIT_SCHEMA **UnitSchemaArray,
[out] SIZE_T *UnitCount
);
Parámetros
[in] Factor
Máscara de bits de marcas de WINBIO_BIOMETRIC_TYPE que especifica los tipos de unidad biométrica que se van a enumerar. Actualmente solo se admite WINBIO_TYPE_FINGERPRINT .
[out] UnitSchemaArray
Dirección de una variable que recibe un puntero a una matriz de estructuras de WINBIO_UNIT_SCHEMA que contienen información sobre cada unidad biométrica enumerada. Si la función no se realiza correctamente, el puntero se establece en NULL. Si la función se ejecuta correctamente, debe pasar el puntero a WinBioFree para liberar la memoria asignada internamente para la matriz.
[out] UnitCount
Puntero a un valor que especifica el número de estructuras a las que apunta el parámetro UnitSchemaArray .
Valor devuelto
Si la función se ejecuta correctamente, devuelve S_OK. Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.
Código devuelto | Descripción |
---|---|
|
La máscara de bits contenida en el parámetro Factor contiene uno o varios bits de tipo no válidos. |
|
No había memoria suficiente para completar la solicitud. |
|
Los parámetros UnitSchemaArray y UnitCount no pueden ser NULL. |
|
La directiva administrativa actual prohíbe el uso de la API de Windows Biometric Framework. |
Comentarios
Actualmente solo se admite WINBIO_TYPE_FINGERPRINT en el parámetro Factor .
Si se devuelve información sobre varias unidades biométricas instaladas en la matriz de estructuras a las que apunta el parámetro UnitSchemaArray , no se garantiza que las unidades estén en ningún orden determinado.
Una vez que haya terminado de usar las estructuras devueltas al parámetro UnitSchemaArray , debe llamar a WinBioFree para liberar la memoria asignada internamente para la matriz.
Si todos los bits de factor de la máscara de bits factor hacen referencia a tipos biométricos no admitidos, la función devuelve S_OK, pero el valor al que apunta el parámetro UnitSchemaArray será NULL y el parámetro UnitCount contendrá cero. Aunque no es un error consultar los factores biométricos no admitidos, el resultado de la consulta será un conjunto vacío.
Ejemplos
La siguiente función llama a WinBioEnumBiometricUnits para enumerar las unidades biométricas instaladas. Vincule a la biblioteca estática Winbio.lib e incluya los siguientes archivos de encabezado:
- 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 | Value |
---|---|
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbio.h (incluya Winbio.h) |
Library | Winbio.lib |
Archivo DLL | Winbio.dll |