Méthode ICEnroll ::enumProviders (xenroll.h)
[Cette méthode n’est plus disponible à partir de Windows Server 2008 et Windows Vista.]
La méthode enumProviders récupère les noms des fournisseurs de services de chiffrement (CSP) disponibles spécifiés par la propriété ProviderType . Cette méthode a d’abord été définie dans l’interface ICEnroll .
Syntaxe
HRESULT enumProviders(
[in] LONG dwIndex,
[in] LONG dwFlags,
[out] BSTR *pbstrProvName
);
Paramètres
[in] dwIndex
Spécifie la position ordinale du fournisseur de solutions Cloud dont le nom sera récupéré. Spécifiez zéro pour le premier csp.
[in] dwFlags
Spécifie les indicateurs transmis à la fonction CryptEnumProviders . Ce paramètre n’est pas utilisé actuellement ; spécifiez zéro.
[out] pbstrProvName
Pointeur vers une variable BSTR qui reçoit le nom d’un fournisseur csp avec le type de propriété spécifié. Lorsque vous avez terminé d’utiliser le BSTR, libérez-le en appelant la fonction SysFreeString .
Valeur retournée
C++
La valeur de retour est un HRESULT. La valeur S_OK indique la réussite. La valeur ERROR_NO_MORE_ITEMS est retournée lorsqu’il n’y a plus de csp avec le type de propriété indiqué par la propriété ProviderType .VB
La valeur de retour est une variable String qui contient le nom d’un fournisseur de solutions Cloud. Une exception est levée si une erreur est rencontrée ou lorsqu’il n’y a plus d’éléments.Remarques
Si la valeur de la propriété ProviderType n’a pas été définie, la valeur par défaut (généralement PROV_RSA_FULL) de ProviderType définie dans le Registre est utilisée.
La méthode enumProviders appelle la fonction CryptEnumProviders .
Exemples
BSTR bstrProvName = NULL;
DWORD nProv;
int j;
HRESULT hr;
// array of CSP provider types (see Wincrypt.h)
DWORD nProvType[] = { PROV_RSA_FULL,
PROV_RSA_SIG,
// list shortened for brevity
//...
PROV_STT_ISS };
// Loop, for each Prov Type.
for (j = 0; j < (sizeof(nProvType)/sizeof(DWORD)); j++)
{
nProv = 0;
// pEnroll is previously instantiated ICEnroll interface pointer
hr = pEnroll->put_ProviderType( nProvType[j] );
if ( FAILED(hr))
{
printf("Failed put_ProviderType - %x\n", hr);
goto error;
}
// Enumerate the CSPs of this type.
while ( S_OK == ( hr = pEnroll->enumProviders(nProv,
0,
&bstrProvName)))
{
printf("Provider %ws (type %d )\n", bstrProvName,
nProvType[j] );
nProv++;
if ( bstrProvName )
{
SysFreeString( bstrProvName );
bstrProvName = NULL;
}
}
// Print message if provider type does not have any CSPs.
if ( 0 == nProv )
printf("There were no CSPs of type %d\n", dwType );
}
error:
// Clean up resources, and so on.
if ( bstrProvName )
SysFreeString( bstrProvName );
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | xenroll.h |
Bibliothèque | Uuid.lib |
DLL | Xenroll.dll |