Fungsi WinBioEnumServiceProviders (winbio.h)

Mengambil informasi tentang penyedia layanan biometrik yang diinstal. Dimulai dengan Windows 10, build 1607, fungsi ini tersedia untuk digunakan dengan gambar seluler.

Sintaks

HRESULT WinBioEnumServiceProviders(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_BSP_SCHEMA     **BspSchemaArray,
  [out] SIZE_T                *BspCount
);

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] BspSchemaArray

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

[out] BspCount

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

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 BspSchemaArray dan BspCount tidak boleh NULL.

Keterangan

Hanya WINBIO_TYPE_FINGERPRINT yang saat ini didukung dalam parameter Factor .

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

Jika semua bit faktor dalam bitmask Faktor mengacu pada jenis biometrik yang tidak didukung, fungsi mengembalikan S_OK tetapi nilai yang ditujukan oleh parameter BspSchemaArray adalah NULL dan parameter BspCount akan berisi nol. Meskipun bukan kesalahan untuk menanyakan faktor biometrik yang tidak didukung, hasil kueri akan menjadi set kosong.

Contoh

Contoh kode berikut memanggil WinBioEnumServiceProviders untuk menghitung penyedia layanan yang diinstal. Contohnya juga mencakup fungsi, DisplayGuid, untuk menampilkan ID penyedia. Tautkan ke pustaka statis Winbio.lib dan sertakan file header berikut:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumSvcProviders( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_BSP_SCHEMA bspSchemaArray = NULL;
    SIZE_T bspCount = 0;
    SIZE_T index = 0;

    // Enumerate the service providers.
    hr = WinBioEnumServiceProviders( 
            WINBIO_TYPE_FINGERPRINT,    // Provider to enumerate
            &bspSchemaArray,            // Provider schema array
            &bspCount );                // Number of schemas returned
    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioEnumServiceProviders failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display the schema information.
    wprintf_s(L"\nService providers: \n");
    for (index = 0; index < bspCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n", 
                 index, 
                 bspSchemaArray[index].BiometricFactor );
        
        wprintf_s(L"\tBspId: ");
        DisplayGuid(&bspSchemaArray[index].BspId);
        wprintf_s(L"\n");

        wprintf_s(L"\tDescription: %ws\n", 
                 bspSchemaArray[index].Description);
        wprintf_s(L"\tVendor: %ws\n", 
                 bspSchemaArray[index].Vendor );
        wprintf_s(L"\tVersion: %d.%d\n", 
                 bspSchemaArray[index].Version.MajorVersion, 
                 bspSchemaArray[index].Version.MinorVersion);

        wprintf_s(L"\n");
    } 

e_Exit:
    if (bspSchemaArray != NULL)
    {
        WinBioFree(bspSchemaArray);
        bspSchemaArray = 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

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments