Freigeben über


CertAddCRLLinkToStore-Funktion (wincrypt.h)

Die CertAddCRLLinkToStore-Funktion fügt einen Link in einem Speicher zu einem Zertifikatsperrlistenkontext (Certificate Revocation List , CRL) in einem anderen Speicher hinzu. Anstatt ein Duplikat der Zertifikatsperrliste zu erstellen und hinzuzufügen, fügt diese Funktion einen Link zum ursprünglichen CRL-Kontext hinzu.

Syntax

BOOL CertAddCRLLinkToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            PCCRL_CONTEXT pCrlContext,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppStoreContext
);

Parameter

[in] hCertStore

Handle eines Zertifikatspeichers, in dem der Link hinzugefügt werden soll.

[in] pCrlContext

Ein Zeiger auf die zu verknüpfende CRL_CONTEXT-Struktur.

[in] dwAddDisposition

Gibt die Aktion an, die ausgeführt werden soll, wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste im Speicher vorhanden ist. Derzeit definierte Dispositionswerte und deren Verwendungen sind wie folgt:

Wert Bedeutung
CERT_STORE_ADD_ALWAYS
Führt keine Überprüfung auf eine vorhandene übereinstimmende Zertifikatsperrliste oder einen Link zu einer übereinstimmenden Zertifikatsperrliste durch. Dem Speicher wird immer ein neuer Link hinzugefügt. Dies kann zu Duplikaten in einem Speicher führen.
CERT_STORE_ADD_NEW
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, schlägt der Vorgang fehl. GetLastError gibt den CRYPT_E_EXISTS Code zurück.
CERT_STORE_ADD_NEWER
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, werden die ThisUpdate-Zeiten für die ZERTIFIKATsperrlisten verglichen. Wenn die vorhandene Zertifikatsperrliste eine ThisUpdate-Zeit hat, die kleiner ist als die ThisUpdate-Zeit in der neuen Zertifikatsperrliste, wird die alte Verknüpfung wie durch CERT_STORE_ADD_REPLACE_EXISTING ersetzt. Wenn die vorhandene Zertifikatsperrliste eine ThisUpdate-Zeit aufweist, die größer oder gleich der ThisUpdate-Zeit in der hinzuzufügenden CRL ist, schlägt die Funktion fehl, da GetLastError den CRYPT_E_EXISTS Code zurückgibt.

Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste nicht im Speicher gefunden wird, wird dem Speicher ein neuer Link hinzugefügt.

CERT_STORE_ADD_REPLACE_EXISTING
Wenn ein Link zur entsprechenden Zertifikatsperrliste vorhanden ist, wird dieser vorhandene Link gelöscht, und ein neuer Link wird erstellt und dem Speicher hinzugefügt. Wenn keine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird ein neuer Link hinzugefügt.
CERT_STORE_ADD_USE_EXISTING
Wenn eine übereinstimmende Zertifikatsperrliste oder ein Link zu einer übereinstimmenden Zertifikatsperrliste vorhanden ist, wird diese vorhandene Verknüpfung verwendet. Die Funktion schlägt nicht fehl, aber es wird keine neue Verknüpfung hinzugefügt. Wenn keine entsprechende Zertifikatsperrliste oder ein Link zu einer Zertifikatsperrliste vorhanden ist, wird ein neuer Link hinzugefügt.

[out, optional] ppStoreContext

Ein Zeiger auf einen Zeiger einer Kopie des erstellten Links. Der ppStoreContext-Parameter kann NULL sein, um anzugeben, dass keine Kopie des Links erforderlich ist. Wenn eine Kopie des Links erstellt wird, muss diese Kopie mit CertFreeCRLContext freigegeben werden.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.

Rückgabecode Beschreibung
CRYPT_E_EXISTS
Für eine dwAddDisposition von CERT_STORE_ADD_NEW ist die CTL bereits im Speicher vorhanden.
E_INVALIDARG
Im dwAddDisposition-Parameter wurde ein ungültiger Dispositionswert angegeben.

Hinweise

Da der Link Zugriff auf einen ursprünglichen Zertifikatsperrlistenkontext ermöglicht, ändert das Festlegen einer erweiterten Eigenschaft im kontext der verknüpften Zertifikatsperrliste diese erweiterte Eigenschaft am ursprünglichen Speicherort der Zertifikatsperrliste und in allen anderen Links zu dieser Zertifikatsperrliste.

Einem Speicher, der als Sammlung geöffnet wird, können keine Links hinzugefügt werden. Als Sammlungen geöffnete Stores umfassen alle Geschäfte, die mit CertOpenSystemStore oder CertOpenStore mit CERT_STORE_PROV_SYSTEM oder CERT_STORE_PROV_COLLECTION geöffnet wurden. Weitere Informationen finden Sie unter CertAddStoreToCollection.

Wenn Links verwendet werden und CertCloseStore mit CERT_CLOSE_STORE_FORCE_FLAG aufgerufen wird, muss der Speicher, der Links verwendet, geschlossen werden, bevor der Speicher mit den ursprünglichen Kontexten geschlossen werden kann. Wenn CERT_CLOSE_STORE_FORCE_FLAG nicht verwendet wird, können die beiden Filialen in beiden Reihenfolge geschlossen werden.

Verwenden Sie die CertDeleteCRLFromStore-Funktion , um den CRL-Kontextlink aus dem Zertifikatspeicher zu entfernen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CertAddCTLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertCloseStore

CertFreeCRLContext

CertOpenStore

CertOpenSystemStore

Zertifikatsperrlistenfunktionen