Función WinBioEnumServiceProviders (winbio.h)

Recupera información sobre los proveedores de servicios biométricos instalados. A partir de Windows 10, compilación 1607, esta función está disponible para su uso con una imagen móvil.

Sintaxis

HRESULT WinBioEnumServiceProviders(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_BSP_SCHEMA     **BspSchemaArray,
  [out] SIZE_T                *BspCount
);

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

Dirección de una variable que recibe un puntero a una matriz de estructuras de WINBIO_BSP_SCHEMA que contienen información sobre cada uno de los proveedores de servicios disponibles. Si la función no se ejecuta correctamente, el puntero se establece en NULL. Si la función se realiza correctamente, debe pasar el puntero a WinBioFree para liberar la memoria asignada internamente para la matriz.

[out] BspCount

Puntero a un valor que especifica el número de estructuras a las que apunta el parámetro BspSchemaArray .

Valor devuelto

Si la función se realiza 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
E_INVALIDARG
La máscara de bits contenida en el parámetro Factor contiene uno o varios bits de tipo no válidos.
E_OUTOFMEMORY
No había memoria suficiente para completar la solicitud.
E_POINTER
Los parámetros BspSchemaArray y BspCount no pueden ser NULL.

Comentarios

Actualmente solo se admite WINBIO_TYPE_FINGERPRINT en el parámetro Factor .

Cuando haya terminado de usar las estructuras devueltas al parámetro BspSchemaArray , 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 BspSchemaArray será NULL y el parámetro BspCount 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

En el ejemplo de código siguiente se llama a WinBioEnumServiceProviders para enumerar los proveedores de servicios instalados. En el ejemplo también se incluye una función, DisplayGuid, para mostrar el identificador del proveedor. Vincule a la biblioteca estática Winbio.lib e incluya los siguientes archivos de encabezado:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumSvcProviders( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_BSP_SCHEMA bspSchemaArray = NULL;
    SIZE_T bspCount = 0;
    SIZE_T index = 0;

    // Enumerate the service providers.
    hr = WinBioEnumServiceProviders( 
            WINBIO_TYPE_FINGERPRINT,    // Provider to enumerate
            &bspSchemaArray,            // Provider schema array
            &bspCount );                // Number of schemas returned
    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioEnumServiceProviders failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display the schema information.
    wprintf_s(L"\nService providers: \n");
    for (index = 0; index < bspCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n", 
                 index, 
                 bspSchemaArray[index].BiometricFactor );
        
        wprintf_s(L"\tBspId: ");
        DisplayGuid(&bspSchemaArray[index].BspId);
        wprintf_s(L"\n");

        wprintf_s(L"\tDescription: %ws\n", 
                 bspSchemaArray[index].Description);
        wprintf_s(L"\tVendor: %ws\n", 
                 bspSchemaArray[index].Vendor );
        wprintf_s(L"\tVersion: %d.%d\n", 
                 bspSchemaArray[index].Version.MajorVersion, 
                 bspSchemaArray[index].Version.MinorVersion);

        wprintf_s(L"\n");
    } 

e_Exit:
    if (bspSchemaArray != NULL)
    {
        WinBioFree(bspSchemaArray);
        bspSchemaArray = NULL;
    }

    wprintf_s(L"\nPress any key to exit...");
    _getch();

    return hr;
}

//------------------------------------------------------------------------
// The following function displays a GUID to the console window.
//
VOID DisplayGuid( __in PWINBIO_UUID Guid )
{
    wprintf_s(
        L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
        Guid->Data1,
        Guid->Data2,
        Guid->Data3,
        Guid->Data4[0],
        Guid->Data4[1],
        Guid->Data4[2],
        Guid->Data4[3],
        Guid->Data4[4],
        Guid->Data4[5],
        Guid->Data4[6],
        Guid->Data4[7]
        );
}


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 (incluye Winbio.h)
Library Winbio.lib
Archivo DLL Winbio.dll

Consulte también

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments