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.
[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.
[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 |
---|---|
|
La fonction a réussi. |
|
La taille spécifiée par le paramètre pcbBuffer n’est pas suffisamment grande pour contenir toutes les données. |
|
Un ou plusieurs paramètres ne sont pas valides. |
|
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 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour