Freigeben über


WinBioEnumDatabases-Funktion (winbio.h)

Listet alle registrierten Datenbanken auf, die einem angegebenen Typ entsprechen.

Syntax

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

Parameter

[in] Factor

Eine Bitmaske von WINBIO_BIOMETRIC_TYPE Flags, die die zu aufzählenden biometrischen Einheitentypen angibt. Nur WINBIO_TYPE_FINGERPRINT wird derzeit unterstützt.

[out] StorageSchemaArray

Adresse einer Variablen, die einen Zeiger auf ein Array von WINBIO_STORAGE_SCHEMA Strukturen empfängt, die Informationen zu jeder Datenbank enthalten. Wenn die Funktion nicht erfolgreich ist, wird der Zeiger auf NULL festgelegt. Wenn die Funktion erfolgreich ist, müssen Sie den Zeiger an WinBioFree übergeben, um den intern für das Array zugewiesenen Arbeitsspeicher freizugeben.

[out] StorageCount

Zeiger auf einen Wert, der die Anzahl von Strukturen angibt, auf die vom Parameter StorageSchemaArray verwiesen wird.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Wenn die Funktion fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Rückgabecode Beschreibung
E_INVALIDARG
Die im Factor-Parameter enthaltene Bitmaske enthält mindestens ein ungültiges Bit vom Typ.
E_OUTOFMEMORY
Es war nicht genügend Arbeitsspeicher vorhanden, um die Anforderung abzuschließen.
E_POINTER
Die Parameter StorageSchemaArray und StorageCount dürfen nicht NULL sein.

Hinweise

Nur WINBIO_TYPE_FINGERPRINT wird derzeit im Factor-Parameter unterstützt.

Wenn Informationen zu mehreren Datenbanken in dem Array von Strukturen zurückgegeben werden, auf das der Parameter StorageSchemaArray verweist, ist nicht garantiert, dass sich die Datenbanken in einer bestimmten Reihenfolge befinden.

Nachdem Sie die Verwendung der an den Parameter StorageSchemaArray zurückgegebenen Strukturen abgeschlossen haben, müssen Sie WinBioFree aufrufen, um den intern für das Array zugewiesenen Arbeitsspeicher freizugeben.

Beispiele

Im folgenden Codebeispiel wird WinBioEnumDatabases aufgerufen, um die biometrischen Datenbanken im System aufzulisten. Das Beispiel enthält auch die Funktion DisplayGuid zum Anzeigen der Datenbank-ID. Verknüpfen Sie die statische Bibliothek Winbio.lib, und fügen Sie die folgenden Headerdateien ein:

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


Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbio.h (einschließlich Winbio.h)
Bibliothek Winbio.lib
DLL Winbio.dll

Weitere Informationen

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders