CertOpenSystemStoreA-Funktion (wincrypt.h)
Die CertOpenSystemStore-Funktion ist eine vereinfachte Funktion, die den gängigsten Systemzertifikatspeicher öffnet. Verwenden Sie CertOpenStore, um Zertifikatspeicher mit komplexeren Anforderungen zu öffnen, z. B. dateibasierte oder speicherbasierte Speicher.
Syntax
HCERTSTORE CertOpenSystemStoreA(
[in] HCRYPTPROV_LEGACY hProv,
[in] LPCSTR szSubsystemProtocol
);
Parameter
[in] hProv
Dieser Parameter wird nicht verwendet und sollte auf 0 festgelegt werden.
Windows Server 2003 und Windows XP: Ein Handle eines Kryptografiedienstanbieters (Cryptographic Service Provider , CSP). Legen Sie hProv auf 0 fest, um den Standard-CSP zu verwenden. Wenn hProv nicht 0 ist, muss es sich um ein CSP-Handle handelt, das mit der CryptAcquireContext-Funktion erstellt wurde. Der Datentyp dieses Parameters ist HCRYPTPROV.
[in] szSubsystemProtocol
Eine Zeichenfolge, die einen Systemspeicher benennt. Wenn der in diesem Parameter angegebene Systemspeichername nicht der Name eines vorhandenen Systemspeichers ist, wird ein neuer Systemspeicher erstellt und verwendet. CertEnumSystemStore kann verwendet werden, um die Namen vorhandener Systemspeicher aufzulisten. Einige Beispielsystemspeicher sind in der folgenden Tabelle aufgeführt.
Wert | Bedeutung |
---|---|
|
Zertifizierungsstellenzertifikate . |
|
Ein Zertifikatspeicher, der Zertifikate mit zugeordneten privaten Schlüsseln enthält. |
|
Stammzertifikate. |
|
Softwareherausgeberzertifikat. |
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion ein Handle an den Zertifikatspeicher zurück.
Wenn die Funktion fehlschlägt, wird NULL zurückgegeben. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Hinweise
Mit dieser Methode kann nur auf aktuelle Benutzerzertifikate zugegriffen werden, nicht über den lokalen Computerspeicher.
Nachdem der Systemspeicher geöffnet wurde, können alle Standardmäßigen Zertifikatspeicherfunktionen verwendet werden, um die Zertifikate zu bearbeiten.
Nach der Verwendung sollte der Speicher mit CertCloseStore geschlossen werden.
Weitere Informationen zu den Speicher, die automatisch migriert werden, finden Sie unter Zertifikatspeichermigration.
Beispiele
Das folgende Beispiel zeigt eine vereinfachte Methode zum Öffnen der gängigsten Systemzertifikatspeicher. Ein weiteres Beispiel, das diese Funktion verwendet, finden Sie unter Beispiel-C-Programm: Zertifikatspeichervorgänge.
//--------------------------------------------------------------------
// 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);
}
Hinweis
Der wincrypt.h-Header definiert CertOpenSystemStore als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Aliases mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |