Partager via


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.

Note Il s’agit de la taille totale, en octets, de la mémoire tampon entière, et pas seulement de la taille de la structure CRYPT_PROVIDERS . La mémoire tampon doit être en mesure de contenir d’autres données pour les fournisseurs en plus de la structure CRYPT_PROVIDERS .
 

[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
STATUS_SUCCESS
La fonction a réussi.
STATUS_BUFFER_TOO_SMALL
La taille spécifiée par le paramètre pcbBuffer n’est pas assez grande pour contenir toutes les données.
STATUS_INVALID_PARAMETER
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

Voir aussi

BCryptFreeBuffer

CRYPT_PROVIDERS