BCryptEnumRegisteredProviders, fonction (bcrypt.h)
La fonction BCryptEnumRegisteredProviders récupère des informations sur les fournisseurs inscrits.
Syntaxe
NTSTATUS BCryptEnumRegisteredProviders(
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_PROVIDERS *ppBuffer
);
Paramètres
[in, out] pcbBuffer
Pointeur vers une valeur ULONG qui, lors de l’entrée, contient la taille, en octets, de la mémoire tampon pointée vers le paramètre ppBuffer . À la sortie, cette valeur reçoit le nombre d’octets copiés dans la mémoire tampon ou la taille requise, en octets, de la mémoire tampon.
[in, out] ppBuffer
Pointeur vers un pointeur de mémoire tampon qui reçoit une structure CRYPT_PROVIDERS et d’autres données qui décrivent la collection de fournisseurs inscrits.
Si ce paramètre a la valeur NULL, cette fonction retourne STATUS_BUFFER_TOO_SMALL et place dans la valeur pointée par le paramètre pcbBuffer , la taille requise, en octets, de toutes les données.
Si ce paramètre est l’adresse d’un pointeur NULL , cette fonction allouera la mémoire requise, remplira la mémoire avec les informations sur les fournisseurs et placera le pointeur vers cette mémoire dans ce paramètre. Lorsque vous avez terminé d’utiliser cette mémoire, libérez-la en passant ce pointeur vers la fonction BCryptFreeBuffer .
Si ce paramètre est l’adresse d’un pointeur non NULL , cette fonction copie les informations du fournisseur dans cette mémoire tampon. Le paramètre pcbBuffer doit contenir la taille, en octets, de la mémoire tampon entière. Si la mémoire tampon n’est pas assez grande pour contenir toutes les informations du fournisseur, cette fonction retourne STATUS_BUFFER_TOO_SMALL.
Valeur retournée
Retourne un code status qui indique la réussite ou l’échec de la fonction.
Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.
Code de retour | Description |
---|---|
|
La fonction a réussi. |
|
La taille spécifiée par le paramètre pcbBuffer n’est pas assez grande pour contenir toutes les données. |
|
Un ou plusieurs paramètres ne sont pas valides. |
Remarques
La fonction BCryptEnumRegisteredProviders peut être appelée de l’une des deux manières suivantes :
-
La première consiste à disposer de la fonction BCryptEnumRegisteredProviders pour allouer la mémoire. Pour ce faire, transmettez l’adresse d’un pointeur NULL pour le paramètre ppBuffer .
L’exemple suivant montre comment utiliser la fonction BCryptEnumRegisteredProviders pour allouer de la mémoire en transmettant l’adresse d’un pointeur NULL pour le paramètre ppBuffer .
PCRYPT_PROVIDERS pBuffer = NULL; BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
Ce code alloue la mémoire requise pour la structure CRYPT_PROVIDERS et les chaînes associées. Lorsque la fonction BCryptEnumRegisteredProviders est utilisée de cette manière, vous devez libérer la mémoire quand elle n’est plus nécessaire en passant ppBuffer à la fonction BCryptFreeBuffer .
- La deuxième méthode consiste à allouer vous-même la mémoire requise. Pour ce faire, appelez la fonction BCryptEnumRegisteredProviders avec NULL pour le paramètre ppBuffer . La fonction BCryptEnumRegisteredProviders place dans la valeur pointée par le paramètre pcbBuffer , la taille requise, en octets, de la structure CRYPT_PROVIDERS et de toutes les chaînes. Vous allouez ensuite la mémoire requise et transmettez l’adresse de ce pointeur de mémoire tampon pour le paramètre ppBuffer dans un deuxième appel à la fonction BCryptEnumRegisteredProviders .
BCryptEnumRegisteredProviders peut être appelé uniquement en mode utilisateur.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | bcrypt.h |
Bibliothèque | Bcrypt.lib |
DLL | Bcrypt.dll |