Compartir a través de


Función WinBioEnumDatabases (winbio.h)

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

Syntax

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 WINBIO_STORAGE_SCHEMA estructuras 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, entre otros, los de la tabla siguiente. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código de retorno Description
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.

Observaciones

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

Si la información sobre varias bases de datos se devuelve 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.

Examples

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

Requirement Importancia
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows Server 2008 R2 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
Header winbio.h (incluya Winbio.h)
Library Winbio.lib
DLL de Winbio.dll

Consulte también

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders