Partager 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 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’algorithme ou l’identificateur de fonction pris en charge par le fournisseur. 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 être NULL pour inclure tous les algorithmes et fonctions.

[in, optional] pszProvider

Pointeur vers une chaîne Unicode terminée par null qui contient le nom du fournisseur à récupérer. Si ce paramètre est NULL, tous les fournisseurs sont inclus.

Ce paramètre vous permet de spécifier un fournisseur spécifique à récupérer si 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 des fournisseurs en mode utilisateur.
CRYPT_KM
Récupérez les fournisseurs de mode noyau.
CRYPT_MM
Récupérez 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, lors de 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 est NULL, cette fonction retourne STATUS_SUCCESS et place dans la valeur pointée par le paramètre dockerBuffer, la taille requise, en octets, de toutes les données.

Si ce paramètre est l’adresse d’un pointeur NULL 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 fini 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 NULL non, cette fonction copie les informations du fournisseur dans cette mémoire tampon. Le paramètre de ccpBuffer 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 de retour

Retourne un code d’état qui indique la réussite ou l’échec de la fonction.

Les codes de retour possibles incluent, mais ne sont pas limités à, les éléments suivants.

Retourner le code Description
STATUS_SUCCESS
La fonction a réussi.
STATUS_BUFFER_TOO_SMALL
La taille spécifiée par le paramètre ccpBuffer 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 n’est trouvé qui répond à tous les critères spécifiés.

Remarques

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

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2008 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête bcrypt.h
bibliothèque Bcrypt.lib
DLL Bcrypt.dll