Partager via


Fonction WinBioEnumDatabases (winbio.h)

Énumère toutes les bases de données inscrites qui correspondent à un type spécifié.

Syntaxe

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

Paramètres

[in] Factor

Masque de bits de WINBIO_BIOMETRIC_TYPE indicateurs qui spécifient les types d’unités biométriques à énumérer. Seule WINBIO_TYPE_FINGERPRINT est actuellement prise en charge.

[out] StorageSchemaArray

Adresse d’une variable qui reçoit un pointeur vers un tableau de structures WINBIO_STORAGE_SCHEMA qui contiennent des informations sur chaque base de données. Si la fonction ne réussit pas, le pointeur est défini sur NULL. Si la fonction réussit, vous devez passer le pointeur à WinBioFree pour libérer la mémoire allouée en interne pour le tableau.

[out] StorageCount

Pointeur vers une valeur qui spécifie le nombre de structures pointées par le paramètre StorageSchemaArray .

Valeur retournée

Si la fonction réussit, elle retourne S_OK. Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles incluent, mais ne sont pas limitées à celles du tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code de retour Descriptif
E_INVALIDARG
Le masque de bits contenu dans le paramètre Factor contient un ou plusieurs bits de type non valides.
E_OUTOFMEMORY
La mémoire est insuffisante pour terminer la requête.
E_POINTER
Les paramètres StorageSchemaArray et StorageCount ne peuvent pas être NULL.

Remarques

Seule WINBIO_TYPE_FINGERPRINT est actuellement prise en charge dans le paramètre Factor .

Si des informations sur plusieurs bases de données sont retournées dans le tableau de structures pointées par le paramètre StorageSchemaArray , les bases de données ne sont pas garanties dans un ordre particulier.

Une fois que vous avez terminé d’utiliser les structures retournées au paramètre StorageSchemaArray , vous devez appeler WinBioFree pour libérer la mémoire allouée en interne pour le tableau.

Examples

L’exemple de code suivant appelle WinBioEnumDatabases pour énumérer les bases de données biométriques sur le système. L’exemple inclut également une fonction, DisplayGuid, pour afficher l’ID de base de données. Lien vers la bibliothèque statique Winbio.lib et incluez les fichiers d’en-tête suivants :

  • 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]
        );
}


Spécifications

Requirement Valeur
Client minimum requis Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
plateforme cible Fenêtres
Header winbio.h (inclure Winbio.h)
Library Winbio.lib
DLL Winbio.dll

Voir aussi

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders