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 |
---|---|
|
Certificati dell'autorità di certificazione . |
|
Archivio certificati che contiene certificati con chiavi private associate. |
|
Certificati radice. |
|
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.
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 |