Freigeben über


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
CA
Zertifizierungsstellenzertifikate .
MY
Ein Zertifikatspeicher, der Zertifikate mit zugeordneten privaten Schlüsseln enthält.
WURZEL
Stammzertifikate.
SPC
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.

Hinweis Fehler aus der aufgerufenen Funktion CertOpenStore werden an diese Funktion weitergegeben.
 

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

Weitere Informationen

CertAddEncodedCertificateToStore

CertCloseStore

CertGetCRLContextProperty

CertOpenStore

CertSaveStore

Zertifikatspeicherfunktionen