Fonction CryptGetDefaultProviderW (wincrypt.h)
Syntaxe
BOOL CryptGetDefaultProviderW(
[in] DWORD dwProvType,
[in] DWORD *pdwReserved,
[in] DWORD dwFlags,
[out] LPWSTR pszProvName,
[in, out] DWORD *pcbProvName
);
Paramètres
[in] dwProvType
Type de fournisseur pour lequel le nom csp par défaut est à trouver.
Les types de fournisseurs définis sont les suivants :
- PROV_RSA_FULL
- PROV_RSA_SIG
- PROV_DSS
- PROV_DSS_DH
- PROV_DH_SCHANNEL
- PROV_FORTEZZA
- PROV_MS_EXCHANGE
- PROV_RSA_SCHANNEL
- PROV_SSL
[in] pdwReserved
Ce paramètre est réservé à une utilisation ultérieure et doit avoir la valeur NULL.
[in] dwFlags
Les valeurs d’indicateur suivantes sont définies.
[out] pszProvName
Pointeur vers une mémoire tampon de chaîne de caractères terminée par null pour recevoir le nom du fournisseur de solutions cloud par défaut.
Pour rechercher la taille de la mémoire tampon à des fins d’allocation de mémoire, ce paramètre peut être NULL. Pour plus d’informations, consultez Récupération de données de longueur inconnue.
[in, out] pcbProvName
Pointeur vers une valeur DWORD qui spécifie la taille, en octets, de la mémoire tampon pointée par le paramètre pszProvName . Lorsque la fonction retourne, la valeur DWORD contient le nombre d’octets stockés ou à stocker dans la mémoire tampon.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).
Si la fonction échoue, la valeur de retour est zéro (FALSE). Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Le code d’erreur préfacé par NTE est généré par le fournisseur de solutions cloud en cours d’utilisation. Les codes d’erreur possibles sont les suivants.
Code de retour | Description |
---|---|
|
L’un des paramètres contient une valeur qui n’est pas valide. Il s’agit le plus souvent d’un pointeur qui n’est pas valide. |
|
La mémoire tampon du nom n’est pas assez grande. |
|
Le système d’exploitation a manqué de mémoire. |
|
Le paramètre dwFlags a une valeur non reconnue. |
Remarques
Cette fonction détermine quel fournisseur de solutions cloud installés est actuellement défini comme valeur par défaut pour l’ordinateur local ou l’utilisateur actuel. Ces informations sont souvent affichées à l’utilisateur.
Exemples
L’exemple suivant récupère le nom du fournisseur de solutions cloud par défaut pour le type de fournisseur PROV_RSA_FULL. Pour un autre exemple qui utilise cette fonction, consultez Exemple de programme C : Énumération des fournisseurs CSP et des types de fournisseurs.
#include <stdio.h>
#include <windows.h>
#include <Wincrypt.h>
#pragma comment(lib, "crypt32.lib")
void main()
{
DWORD cbProvName=0;
LPTSTR pbProvName=NULL;
// Copyright (C) Microsoft. All rights reserved.
// Get the length of the RSA_FULL default provider name.
if (!(CryptGetDefaultProvider(
PROV_RSA_FULL,
NULL,
CRYPT_MACHINE_DEFAULT,
NULL,
&cbProvName)))
{
printf("Error getting the length of the default "
"provider name.\n");
exit(1);
}
// Allocate local memory for the name of the default provider.
if (!(pbProvName = (LPTSTR)LocalAlloc(LMEM_ZEROINIT,
cbProvName)))
{
printf("Error during memory allocation for "
"provider name.\n");
exit(1);
}
// Get the default provider name.
if (CryptGetDefaultProvider(
PROV_RSA_FULL,
NULL,
CRYPT_MACHINE_DEFAULT,
pbProvName,
&cbProvName))
{
printf("The default provider name is %s\n",pbProvName);
}
else
{
printf("Getting the name of the provider failed.\n");
exit(1);
}
// Free resources when done.
LocalFree(pbProvName);
}
Notes
L’en-tête wincrypt.h définit CryptGetDefaultProvider comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |
Voir aussi
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