Fungsi WinBioEnumBiometricUnits (winbio.h)

Menghitung semua unit biometrik terpasang yang cocok dengan jenis input.

Sintaks

HRESULT WinBioEnumBiometricUnits(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_UNIT_SCHEMA    **UnitSchemaArray,
  [out] SIZE_T                *UnitCount
);

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

Alamat variabel yang menerima penunjuk ke array struktur WINBIO_UNIT_SCHEMA yang berisi informasi tentang setiap unit biometrik yang dijumlahkan. 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] UnitCount

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

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 UnitSchemaArray dan UnitCount tidak boleh NULL.
WINBIO_E_DISABLED
Kebijakan administratif saat ini melarang penggunaan WINDOWS Biometric Framework API.

Keterangan

Hanya WINBIO_TYPE_FINGERPRINT yang saat ini didukung dalam parameter Factor .

Jika informasi tentang beberapa unit biometrik yang diinstal dikembalikan dalam array struktur yang diarahkan oleh parameter UnitSchemaArray , unit tidak dijamin berada dalam urutan tertentu.

Setelah Anda selesai menggunakan struktur yang dikembalikan ke parameter UnitSchemaArray , 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 diarahkan oleh parameter UnitSchemaArray adalah NULL dan parameter UnitCount akan berisi nol. Meskipun bukan kesalahan untuk menanyakan faktor biometrik yang tidak didukung, hasil kueri akan menjadi set kosong.

Contoh

Fungsi berikut memanggil WinBioEnumBiometricUnits untuk menghitung unit biometrik yang diinstal. Tautkan ke pustaka statis Winbio.lib dan sertakan file header berikut:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumerateSensors( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_UNIT_SCHEMA unitSchema = NULL;
    SIZE_T unitCount = 0;
    SIZE_T index = 0;

    // Enumerate the installed biometric units.
    hr = WinBioEnumBiometricUnits( 
            WINBIO_TYPE_FINGERPRINT,        // Type of biometric unit
            &unitSchema,                    // Array of unit schemas
            &unitCount );                   // Count of unit schemas

    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioEnumBiometricUnits failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display information for each installed biometric unit.
    wprintf_s(L"\nSensors: \n");
    for (index = 0; index < unitCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tUnit ID: %d\n", 
                 index, 
                 unitSchema[index].UnitId );
        wprintf_s(L"\tDevice instance ID: %s\n", 
                 unitSchema[index].DeviceInstanceId );
        wprintf_s(L"\tPool type: %d\n", 
                 unitSchema[index].PoolType );
        wprintf_s(L"\tBiometric factor: %d\n", 
                 unitSchema[index].BiometricFactor );
        wprintf_s(L"\tSensor subtype: %d\n", 
                 unitSchema[index].SensorSubType );
        wprintf_s(L"\tSensor capabilities: 0x%08x\n", 
                 unitSchema[index].Capabilities );
        wprintf_s(L"\tDescription: %s\n", 
                 unitSchema[index].Description );
        wprintf_s(L"\tManufacturer: %s\n", 
                 unitSchema[index].Manufacturer );
        wprintf_s(L"\tModel: %s\n", 
                 unitSchema[index].Model );
        wprintf_s(L"\tSerial no: %s\n", 
                 unitSchema[index].SerialNumber );
        wprintf_s(L"\tFirmware version: [%d.%d]\n", 
                 unitSchema[index].FirmwareVersion.MajorVersion, 
                 unitSchema[index].FirmwareVersion.MinorVersion);
    }


e_Exit:
    if (unitSchema != NULL)
    {
        WinBioFree(unitSchema);
        unitSchema = NULL;
    }

    wprintf_s(L"\nPress any key to exit...");
    _getch();

    return hr;
}


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

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders