Condividi tramite


Funzione CertOpenSystemStoreW (wincrypt.h)

La funzione CertOpenSystemStore è una funzione semplificata che apre il sistema più comune archivio certificati. Per aprire archivi certificati con requisiti più complessi, ad esempio archivi basati su file o basati sulla 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 provider di servizi di configurazione 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 denomina 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.
Archivio certificati che contiene certificati con chiavi private associate.
ROOT
certificati radice.
SPC
Software Publisher Certificate.

Valore restituito

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

Se la funzione non riesce, restituisce NULL. Per informazioni sugli errori estesi, chiamare GetLastError.

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

Osservazioni

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 dell'archivio certificati standard per modificare i certificati.

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

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

Esempi

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 Programma C di esempio: 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 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 Crypt32.lib
dll Crypt32.dll

Vedere anche

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

funzioni dell'archivio certificati