Funzione CertOpenSystemStoreA (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 sulla memoria, usare CertOpenStore.

Sintassi

HCERTSTORE CertOpenSystemStoreA(
  [in] HCRYPTPROV_LEGACY hProv,
  [in] LPCSTR            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. Nella tabella seguente sono elencati alcuni archivi di sistema di esempio.

valore Significato
CA
Certificati dell'autorità di certificazione .
MIO
Archivio certificati che contiene certificati con chiavi private associate.
RADICE
Certificati radice.
SPC
Certificato autore 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 sugli errori estesi, chiamare GetLastError.

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

Commenti

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

Dopo l'apertura dell'archivio di sistema, è possibile usare tutte le funzioni standard dell'archivio certificati per modificare i certificati.

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

Per altre informazioni sugli archivi di cui viene eseguita la migrazione automatica, vedere Migrazione dell'archivio certificati.

Esempio

Nell'esempio seguente viene illustrato un metodo semplificato per l'apertura degli 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 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 Crypt32.lib
DLL Crypt32.dll

Vedi anche

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

Funzioni dell'archivio certificati