Freigeben über


WinBioEnumBiometricUnits-Funktion (winbio.h)

Listet alle angefügten biometrischen Einheiten auf, die dem Eingabetyp entsprechen.

Syntax

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

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

Adresse einer Variablen, die einen Zeiger auf ein Array von WINBIO_UNIT_SCHEMA Strukturen empfängt, die Informationen zu jeder aufgezählten biometrischen Einheit 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] UnitCount

Zeigen Sie auf einen Wert, der die Anzahl der Strukturen angibt, auf die der Parameter UnitSchemaArray 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 UnitSchemaArray und UnitCount können nicht NULL sein.
WINBIO_E_DISABLED
Die aktuelle Administrative Richtlinie verbietet die Verwendung der Windows-Biometrie-Framework-API.

Bemerkungen

Nur WINBIO_TYPE_FINGERPRINT wird derzeit im Parameter Factor unterstützt.

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

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

Wenn alle Faktorbits in der Factor-Bitmaske auf nicht unterstützte biometrische Typen verweisen, gibt die Funktion S_OK zurück, aber der wert, auf den der Parameter UnitSchemaArray verweist, ist NULL, und der UnitCount-Parameter enthält Null. Obwohl es kein Fehler ist, sich um nicht unterstützte biometrische Faktoren zu erkundigen, ist das Ergebnis der Abfrage ein leerer Satz.

Examples

Die folgende Funktion ruft WinBioEnumBiometricUnits auf, um die installierten biometrischen Einheiten aufzählen zu können. 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 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;
}


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

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders