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 deve essere trovato 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 uso futuro e deve essere NULL.
[in] dwFlags
Vengono definiti i valori del 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 di 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 contiene il numero di byte archiviati o da archiviare nel buffer.
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 che non è valido. |
|
Il buffer per il nome non è sufficientemente grande. |
|
Memoria insufficiente del sistema operativo. |
|
Il parametro dwFlags ha un valore non riconosciuto. |
Commenti
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.
Esempio
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 Esempio di programma C: enumerazione di provider CSP e 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per