WinBioEnumServiceProviders-Funktion (winbio.h)

Ruft Informationen zu installierten biometrischen Dienstanbietern ab. Ab Windows 10 Build 1607 ist diese Funktion für die Verwendung mit einem mobilen Image verfügbar.

Syntax

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

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

Adresse einer Variablen, die einen Zeiger auf ein Array von WINBIO_BSP_SCHEMA Strukturen empfängt, die Informationen zu den einzelnen verfügbaren Dienstanbietern 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] BspCount

Zeiger auf einen Wert, der die Anzahl der Strukturen angibt, auf die der BspSchemaArray-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 BspSchemaArray und BspCount können nicht NULL sein.

Hinweise

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

Nachdem Sie mit der Verwendung der an den BspSchemaArray-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 BspSchemaArray-Parameter verweist, NULL ist , und der BspCount-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

Im folgenden Codebeispiel wird WinBioEnumServiceProviders aufgerufen, um die installierten Dienstanbieter aufzulisten. Das Beispiel enthält auch die Funktion DisplayGuid zum Anzeigen der Anbieter-ID. 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 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]
        );
}


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

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments