Share via


BCryptResolveProviders, fonction (bcrypt.h)

La fonction BCryptResolveProviders obtient une collection de tous les fournisseurs qui répondent aux critères spécifiés.

Syntaxe

NTSTATUS BCryptResolveProviders(
  [in, optional] LPCWSTR              pszContext,
  [in, optional] ULONG                dwInterface,
  [in, optional] LPCWSTR              pszFunction,
  [in, optional] LPCWSTR              pszProvider,
  [in]           ULONG                dwMode,
  [in]           ULONG                dwFlags,
  [in, out]      ULONG                *pcbBuffer,
  [in, out]      PCRYPT_PROVIDER_REFS *ppBuffer
);

Paramètres

[in, optional] pszContext

Pointeur vers une chaîne Unicode terminée par une valeur Null qui contient l’identificateur du contexte pour lequel obtenir les fournisseurs. Si cette valeur est définie sur NULL ou sur une chaîne vide, le contexte par défaut est supposé.

[in, optional] dwInterface

Identificateur d’une interface que le fournisseur doit prendre en charge. Il doit s’agir de l’un des identificateurs d’interface CNG. Si le paramètre pszFunction n’est pas NULL ou une chaîne vide, vous pouvez définir dwInterface sur zéro pour forcer la fonction à déduire l’interface.

[in, optional] pszFunction

Pointeur vers une chaîne Unicode terminée par null qui contient l’identificateur d’algorithme ou de fonction que le fournisseur doit prendre en charge. Il peut s’agir de l’un des identificateurs d’algorithme CNG standard ou de l’identificateur d’un autre algorithme inscrit. Si dwInterface est défini sur une valeur différente de zéro, pszFunction peut avoir la valeur NULL pour inclure tous les algorithmes et fonctions.

[in, optional] pszProvider

Pointeur vers une chaîne Unicode terminée par un caractère Null qui contient le nom du fournisseur à récupérer. Si ce paramètre a la valeur NULL, tous les fournisseurs sont inclus.

Ce paramètre vous permet de spécifier un fournisseur spécifique à récupérer dans le cas où plusieurs fournisseurs répondent aux autres critères.

[in] dwMode

Spécifie le type de fournisseur à récupérer. Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
CRYPT_UM
Récupérer les fournisseurs de mode utilisateur.
CRYPT_KM
Récupérez les fournisseurs de mode noyau.
CRYPT_MM
Récupérez à la fois les fournisseurs en mode utilisateur et en mode noyau.

[in] dwFlags

Ensemble d’indicateurs qui modifient le comportement de cette fonction.

Il peut s’agir d’un zéro ou d’une combinaison d’une ou plusieurs des valeurs suivantes.

Valeur Signification
CRYPT_ALL_FUNCTIONS
1
Cette fonction récupère toutes les fonctions prises en charge par chaque fournisseur qui répond aux critères spécifiés. Si cet indicateur n’est pas spécifié, cette fonction récupère uniquement la première fonction du fournisseur ou des fournisseurs qui répondent aux critères spécifiés.
CRYPT_ALL_PROVIDERS
2
Cette fonction récupère tous les fournisseurs qui répondent aux critères spécifiés. Si cet indicateur n’est pas spécifié, cette fonction récupère uniquement le premier fournisseur trouvé qui répond aux critères spécifiés.

[in, out] pcbBuffer

Pointeur vers une valeur DWORD qui, à l’entrée, contient la taille, en octets, de la mémoire tampon pointée par 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

Adresse d’un pointeur CRYPT_PROVIDER_REFS qui reçoit la collection de fournisseurs qui répondent aux critères spécifiés.

Si ce paramètre a la valeur NULL, cette fonction retourne STATUS_SUCCESS 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 alloue la mémoire requise, remplit la mémoire avec les informations sur les fournisseurs et place 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 à 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 suffisamment 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 suffisamment grande pour contenir toutes les données.
STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
STATUS_NOT_FOUND
Aucun fournisseur répondant à tous les critères spécifiés n’a pu être trouvé.

Remarques

BCryptResolveProviders peut être appelé à partir du mode utilisateur ou du mode noyau. Les appelants en mode noyau doivent s’exécuter à PASSIVE_LEVELIRQL.

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