Funzione CryptGetDefaultProviderW (wincrypt.h)
Sintassi
BOOL CryptGetDefaultProviderW(
[in] DWORD dwProvType,
[in] DWORD *pdwReserved,
[in] DWORD dwFlags,
[out] LPWSTR pszProvName,
[in, out] DWORD *pcbProvName
);
Parametri
[in] dwProvType
Tipo di provider per il quale trovare il nome CSP predefinito.
I tipi di provider definiti sono i seguenti:
- 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
Questo parametro è riservato per un uso futuro e deve essere NULL.
[in] dwFlags
Vengono definiti i valori di flag seguenti.
[out] pszProvName
Puntatore a un buffer di stringhe di caratteri con terminazione Null per ricevere il nome del provider di servizi di configurazione predefinito.
Per trovare le dimensioni del buffer a scopo di allocazione della memoria, questo parametro può essere NULL. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.
[in, out] pcbProvName
Puntatore a un valore DWORD che specifica le dimensioni, in byte, del buffer a cui punta il parametro pszProvName. Quando la funzione viene restituita, il valore DWORD
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).
Se la funzione ha esito negativo, il valore restituito è zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError.
Il codice di errore preceduto dall'NTE viene generato dal CSP specifico usato. I codici di errore possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Uno dei parametri contiene un valore non valido. Si tratta più spesso di un puntatore non valido. |
|
Il buffer per il nome non è sufficientemente grande. |
|
Memoria esaurita del sistema operativo. |
|
Il parametro dwFlags ha un valore non riconosciuto. |
Osservazioni
Questa funzione determina quale provider di servizi di configurazione installato è attualmente impostato come predefinito per il computer locale o l'utente corrente. Queste informazioni vengono spesso visualizzate all'utente.
Esempi
Nell'esempio seguente viene recuperato il nome del provider CSP predefinito per il tipo di provider PROV_RSA_FULL. Per un altro esempio che usa questa funzione, vedere Programma C di esempio: enumerazione dei provider CSP e dei tipi di provider.
#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);
}
Nota
L'intestazione wincrypt.h definisce CryptGetDefaultProvider come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
wincrypt.h |
libreria |
Advapi32.lib |
dll | Advapi32.dll |
Vedere anche
funzioni del provider di servizi