Funzione CertOpenSystemStoreW (wincrypt.h)

La funzione CertOpenSystemStore è una funzione semplificata che apre l'archivio certificati di sistema più comune. Per aprire archivi certificati con requisiti più complessi, ad esempio archivi basati su file o basati su memoria, usare CertOpenStore.

Sintassi

HCERTSTORE CertOpenSystemStoreW(
  [in] HCRYPTPROV_LEGACY hProv,
  [in] LPCWSTR           szSubsystemProtocol
);

Parametri

[in] hProv

Questo parametro non viene usato e deve essere impostato su 0.

Windows Server 2003 e Windows XP: Handle di un provider di servizi di crittografia (CSP). Impostare hProv su 0 per usare il CSP predefinito. Se hProv non è 0, deve essere un handle CSP creato usando la funzione CryptAcquireContext . Il tipo di dati di questo parametro è HCRYPTPROV.

[in] szSubsystemProtocol

Stringa che assegna un nome a un archivio di sistema. Se il nome dell'archivio di sistema specificato in questo parametro non è il nome di un archivio di sistema esistente, verrà creato e usato un nuovo archivio di sistema. CertEnumSystemStore può essere usato per elencare i nomi degli archivi di sistema esistenti. Alcuni archivi di sistema di esempio sono elencati nella tabella seguente.

Valore Significato
CA
Certificati dell'autorità di certificazione .
MIO
Archivio certificati che contiene certificati con chiavi private associate.
RADICE
Certificati radice.
SPC
Certificato del server di pubblicazione software.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un handle all'archivio certificati.

Se la funzione ha esito negativo, restituisce NULL. Per informazioni sull'errore estese, chiamare GetLastError.

Nota Gli errori della funzione denominata CertOpenStore vengono propagati a questa funzione.
 

Commenti

Solo i certificati utente correnti sono accessibili usando questo metodo, non l'archivio computer locale.

Dopo l'apertura dell'archivio di sistema, tutte le funzioni dell'archivio certificati standard possono essere usate per modificare i certificati.

Dopo l'uso, l'archivio deve essere chiuso usando CertCloseStore.

Per altre informazioni sugli archivi migrati automaticamente, vedere Migrazione dell'archivio certificati.

Esempio

Nell'esempio seguente viene illustrato un metodo semplificato per aprire gli archivi certificati di sistema più comuni. Per un altro esempio che usa questa funzione, vedere Esempio di programma C: Operazioni dell'archivio certificati.

//--------------------------------------------------------------------
// Declare and initialize variables.

HCERTSTORE  hSystemStore;              // system store handle

//--------------------------------------------------------------------
// Open the CA system certificate store. The same call can be
// used with the name of a different system store, such as My or Root,
// as the second parameter.

if(hSystemStore = CertOpenSystemStore(
    0,
    "CA"))
{
  printf("The CA system store is open. Continue.\n");
}
else
{
  printf("The CA system store did not open.\n");
  exit(1);
}

// Use the store as needed.
// ...

// When done using the store, close it.
if(!CertCloseStore(hSystemStore, 0))
{
  printf("Unable to close the CA system store.\n");
  exit(1);
}

Nota

L'intestazione wincrypt.h definisce CertOpenSystemStore come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
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 Crypt32.lib
DLL Crypt32.dll

Vedi anche

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

Funzioni dell'archivio certificati