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
);

Parameter

[in] Factor

Eine Bitmaske mit WINBIO_BIOMETRIC_TYPE Flags, die die zu enumerierten 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 aufgelisteten 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 zugeordneten Arbeitsspeicher freizugeben.

[out] UnitCount

Zeiger auf einen Wert, der die Anzahl der Strukturen angibt, auf die der UnitSchemaArray-Parameter 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ögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Rückgabecode Beschreibung
E_INVALIDARG
Die im Factor-Parameter enthaltene Bitmaske enthält ein oder mehrere ungültige Typbits.
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 Verwaltungsrichtlinie verbietet die Verwendung der Windows Biometric Framework-API.

Hinweise

Im Factor-Parameter wird derzeit nur WINBIO_TYPE_FINGERPRINT unterstützt.

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

Nachdem Sie mit der Verwendung der an den UnitSchemaArray-Parameter zurückgegebenen Strukturen fertig sind, müssen Sie WinBioFree aufrufen, um den intern für das Array zugeordneten Arbeitsspeicher freizugeben.

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

Beispiele

Die folgende Funktion ruft WinBioEnumBiometricUnits auf, um die installierten biometrischen Einheiten aufzulisten. Verknüpfen Sie die statische Winbio.lib-Bibliothek, und schließen 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
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbio.h (winbio.h einschließen)
Bibliothek Winbio.lib
DLL Winbio.dll

Weitere Informationen

WinBioEnumDatabases

WinBioEnumEnrollments

WinBioEnumServiceProviders