Share via


WinBioEnumDatabases 函式 (winbio.h)

列舉符合指定型別的所有已註冊資料庫。

語法

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

參數

[in] Factor

WINBIO_BIOMETRIC_TYPE旗標的位掩碼,指定要列舉的生物特徵辨識單位類型。 目前僅支援 WINBIO_TYPE_FINGERPRINT

[out] StorageSchemaArray

變數的位址,該變數會接收包含每個資料庫相關信息 之WINBIO_STORAGE_SCHEMA 結構的陣列指標。 如果函式不成功,指標會設定為 NULL。 如果函式成功,您必須將指標傳遞至 WinBioFree ,以釋放內部配置給數位的記憶體。

[out] StorageCount

值的指標,指定 StorageSchemaArray 參數所指向的結構數目。

傳回值

如果函式成功,它會傳回S_OK。 如果函式失敗,它會傳回 HRESULT 值,指出錯誤。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼 Description
E_INVALIDARG
Factor 參數中包含的位掩碼包含一或多個無效的類型位。
E_OUTOFMEMORY
記憶體不足,無法完成要求。
E_POINTER
StorageSchemaArrayStorageCount 參數不可為 NULL

備註

Factor 參數目前僅支援WINBIO_TYPE_FINGERPRINT

如果 StorageSchemaArray 參數所指向之結構數位中傳回多個資料庫的相關信息,則不會保證資料庫以任何特定順序。

使用傳回至 StorageSchemaArray 參數的結構之後,您必須呼叫 WinBioFree ,以釋放內部配置給數位的記憶體。

範例

下列程式代碼範例會呼叫 WinBioEnumDatabases 來列舉系統上的生物特徵辨識資料庫。 此範例也包含顯示資料庫標識碼的函式 DisplayGuid。 連結到Winbio.lib 靜態庫,並包含下列頭檔:

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


規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 winbio.h (包含Winbio.h)
程式庫 Winbio.lib
Dll Winbio.dll

另請參閱

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders