Función WinBioEnumDatabases (winbio.h)

Enumera todas las bases de datos registradas que coinciden con un tipo especificado.

Sintaxis

HRESULT WinBioEnumDatabases(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_STORAGE_SCHEMA **StorageSchemaArray,
  [out] SIZE_T                *StorageCount
);

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

Dirección de una variable que recibe un puntero a una matriz de estructuras de WINBIO_STORAGE_SCHEMA que contienen información sobre cada base de datos. 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] StorageCount

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

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
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 StorageSchemaArray y StorageCount no pueden ser NULL.

Comentarios

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

Si se devuelve información sobre varias bases de datos en la matriz de estructuras a las que apunta el parámetro StorageSchemaArray , no se garantiza que las bases de datos estén en ningún orden determinado.

Una vez que haya terminado de usar las estructuras devueltas al parámetro StorageSchemaArray , debe llamar a WinBioFree para liberar la memoria asignada internamente para la matriz.

Ejemplos

En el ejemplo de código siguiente se llama a WinBioEnumDatabases para enumerar las bases de datos biométricas del sistema. En el ejemplo también se incluye una función, DisplayGuid, para mostrar el identificador de la base de datos. Vincule a la biblioteca estática Winbio.lib e incluya los siguientes archivos de encabezado:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumDatabases( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_STORAGE_SCHEMA storageSchemaArray = NULL;
    SIZE_T storageCount = 0;
    SIZE_T index = 0;

    // Enumerate the databases.
    hr = WinBioEnumDatabases( 
            WINBIO_TYPE_FINGERPRINT,    // Type of biometric unit
            &storageSchemaArray,        // Array of database schemas
            &storageCount );            // Number of database schemas
    if (FAILED(hr))
    {
        wprintf_s(L"\nWinBioEnumDatabases failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display information for each database.
    wprintf_s(L"\nDatabases:\n");
    for (index = 0; index < storageCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n", 
                 index, 
                 storageSchemaArray[index].BiometricFactor );
        
        wprintf_s(L"\tDatabase ID: ");
        DisplayGuid(&storageSchemaArray[index].DatabaseId);
        wprintf_s(L"\n");

        wprintf_s(L"\tData format: ");
        DisplayGuid(&storageSchemaArray[index].DataFormat);
        wprintf_s(L"\n");

        wprintf_s(L"\tAttributes:  0x%08x\n", 
                 storageSchemaArray[index].Attributes);

        wprintf_s(L"\tFile path:   %ws\n", 
                 storageSchemaArray[index].FilePath );

        wprintf_s(L"\tCnx string:  %ws\n", 
                 storageSchemaArray[index].ConnectionString );

        wprintf_s(L"\n");
    }

e_Exit:
    if (storageSchemaArray != NULL)
    {
        WinBioFree(storageSchemaArray);
        storageSchemaArray = 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 (incluya Winbio.h)
Library Winbio.lib
Archivo DLL Winbio.dll

Consulte también

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders