Freigeben über


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

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

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

Zeigen Sie 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ö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 "BspSchemaArray " und "BspCount " dürfen nicht NULL sein.

Bemerkungen

Nur WINBIO_TYPE_FINGERPRINT wird derzeit im Parameter Factor unterstützt.

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

Im folgenden Codebeispiel wird WinBioEnumServiceProviders aufgerufen, um die installierten Dienstanbieter aufzählen zu können. Das Beispiel enthält auch eine Funktion, DisplayGuid, um die Anbieter-ID anzuzeigen. 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 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
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

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments