Partager via


Fonction WinBioEnumServiceProviders (winbio.h)

Récupère des informations sur les fournisseurs de services biométriques installés. À compter de Windows 10 build 1607, cette fonction peut être utilisée avec une image mobile.

Syntaxe

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

Paramètres

[in] Factor

Masque de bits de WINBIO_BIOMETRIC_TYPE indicateurs qui spécifie les types d’unités biométriques à énumérer. Seule WINBIO_TYPE_FINGERPRINT est actuellement prise en charge.

[out] BspSchemaArray

Adresse d’une variable qui reçoit un pointeur vers un tableau de structures WINBIO_BSP_SCHEMA qui contiennent des informations sur chacun des fournisseurs de services disponibles. Si la fonction échoue, le pointeur est défini sur NULL. Si la fonction réussit, vous devez passer le pointeur vers WinBioFree pour libérer la mémoire allouée en interne pour le tableau.

[out] BspCount

Pointeur vers une valeur qui spécifie le nombre de structures pointées par le paramètre BspSchemaArray .

Valeur retournée

Si la fonction réussit, elle retourne S_OK. Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles sont notamment celles figurant dans le tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code de retour Description
E_INVALIDARG
Le masque de bits contenu dans le paramètre Factor contient un ou plusieurs bits de type non valides.
E_OUTOFMEMORY
La mémoire était insuffisante pour effectuer la demande.
E_POINTER
Les paramètres BspSchemaArray et BspCount ne peuvent pas être NULL.

Remarques

Seule WINBIO_TYPE_FINGERPRINT est actuellement prise en charge dans le paramètre Factor .

Une fois que vous avez terminé d’utiliser les structures retournées au paramètre BspSchemaArray , vous devez appeler WinBioFree pour libérer la mémoire allouée en interne pour le tableau.

Si tous les bits de facteur dans le masque de bits factor font référence à des types biométriques non pris en charge, la fonction retourne S_OK mais la valeur pointée par le paramètre BspSchemaArray sera NULL et le paramètre BspCount contiendra zéro. Bien qu’il ne s’agisse pas d’une erreur de se renseigner sur les facteurs biométriques non pris en charge, le résultat de la requête sera un ensemble vide.

Exemples

L’exemple de code suivant appelle WinBioEnumServiceProviders pour énumérer les fournisseurs de services installés. L’exemple inclut également une fonction, DisplayGuid, pour afficher l’ID de fournisseur. Créez un lien vers la bibliothèque statique Winbio.lib et incluez les fichiers d’en-tête suivants :

  • 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]
        );
}


Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbio.h (inclure Winbio.h)
Bibliothèque Winbio.lib
DLL Winbio.dll

Voir aussi

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments