Funzione CertOpenSystemStoreA (wincrypt.h)
La funzione CertOpenSystemStore
HCERTSTORE CertOpenSystemStoreA(
[in] HCRYPTPROV_LEGACY hProv,
[in] LPCSTR szSubsystemProtocol
);
[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 |
---|---|
|
certificati dell'autorità di certificazione. |
Archivio certificati che contiene certificati con chiavi private associate. | |
|
certificati radice. |
|
Software Publisher Certificate. |
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.
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.
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.
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 |