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 |
---|---|
|
Le masque de bits contenu dans le paramètre Factor contient un ou plusieurs bits de type non valides. |
|
La mémoire était insuffisante pour effectuer la demande. |
|
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 |