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
);

Die Parameter

[in] Factor

Eine Bitmaske von WINBIO_BIOMETRIC_TYPE Flags, die die zu aufzählenden biometrischen Einheitentypen angibt. Derzeit wird nur WINBIO_TYPE_FINGERPRINT 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 Speicher freizugeben.

[out] StorageCount

Zeigen Sie auf einen Wert, der die Anzahl der Strukturen angibt, auf die der Parameter StorageSchemaArray verweist.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Wenn die Funktion fehlschlägt, wird ein HRESULT-Wert zurückgegeben, der den Fehler angibt. Mögliche Werte sind die Werte in der folgenden Tabelle, sind jedoch nicht beschränkt. Eine Liste allgemeiner Fehlercodes finden Sie unter "Allgemeine HRESULT-Werte".

Rückgabecode Description
E_INVALIDARG
Die im Parameter Factor enthaltene Bitmaske enthält mindestens ein ungültiges Bit.
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.

Bemerkungen

Nur WINBIO_TYPE_FINGERPRINT wird derzeit im Parameter Factor unterstützt.

Wenn Informationen zu mehreren Datenbanken im Array von Strukturen zurückgegeben werden, auf die der Parameter StorageSchemaArray verweist, sind die Datenbanken nicht garantiert in einer bestimmten Reihenfolge.

Nachdem Sie mit der Verwendung der Strukturen fertig sind, die an den Parameter StorageSchemaArray zurückgegeben wurden, müssen Sie WinBioFree aufrufen, um den intern für das Array zugewiesenen Speicher freizugeben.

Examples

Im folgenden Codebeispiel wird WinBioEnumDatabases aufgerufen, um die biometrischen Datenbanken im System aufzählen zu können. Das Beispiel enthält auch eine Funktion, DisplayGuid, um die Datenbank-ID anzuzeigen. Verknüpfen Sie die statische Winbio.lib-Bibliothek, 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
Mindestens unterstützter Client Windows 7 [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Fenster
Header winbio.h (enthalten Winbio.h)
Library Winbio.lib
DLL Winbio.dll

Siehe auch

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders