Bagikan melalui


Fungsi WinBioEnumDatabases (winbio.h)

Menghitung semua database terdaftar yang cocok dengan jenis tertentu.

Sintaks

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

Parameter

[in] Factor

Bitmask bendera WINBIO_BIOMETRIC_TYPE yang menentukan jenis unit biometrik yang akan dijumlahkan. Hanya WINBIO_TYPE_FINGERPRINT yang saat ini didukung.

[out] StorageSchemaArray

Alamat variabel yang menerima penunjuk ke array struktur WINBIO_STORAGE_SCHEMA yang berisi informasi tentang setiap database. Jika fungsi tidak berhasil, penunjuk diatur ke NULL. Jika fungsi berhasil, Anda harus meneruskan penunjuk ke WinBioFree untuk merilis memori yang dialokasikan secara internal untuk array.

[out] StorageCount

Penunjuk ke nilai yang menentukan jumlah struktur yang diarahkan oleh parameter StorageSchemaArray .

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan S_OK. Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.

Menampilkan kode Deskripsi
E_INVALIDARG
Bitmask yang terkandung dalam parameter Factor berisi satu atau beberapa bit jenis yang tidak valid.
E_OUTOFMEMORY
Memori tidak cukup untuk menyelesaikan permintaan.
E_POINTER
Parameter StorageSchemaArray dan StorageCount tidak boleh NULL.

Keterangan

Hanya WINBIO_TYPE_FINGERPRINT yang saat ini didukung dalam parameter Faktor .

Jika informasi tentang beberapa database dikembalikan dalam array struktur yang diarahkan oleh parameter StorageSchemaArray , database tidak dijamin berada dalam urutan tertentu.

Setelah Anda selesai menggunakan struktur yang dikembalikan ke parameter StorageSchemaArray , Anda harus memanggil WinBioFree untuk merilis memori yang dialokasikan secara internal untuk array.

Contoh

Contoh kode berikut memanggil WinBioEnumDatabases untuk menghitung database biometrik pada sistem. Contohnya juga menyertakan fungsi, DisplayGuid, untuk menampilkan ID database. Tautkan ke pustaka statis Winbio.lib dan sertakan file header berikut:

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


Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header winbio.h (termasuk Winbio.h)
Pustaka Winbio.lib
DLL Winbio.dll

Lihat juga

WINBIO_STORAGE_SCHEMA

WinBioEnumBiometricUnits

WinBioEnumEnrollments

WinBioEnumServiceProviders