Funzione CertAddCRLLinkToStore (wincrypt.h)

La funzione CertAddCRLLinkToStore aggiunge un collegamento in un archivio a un contesto di revoche di certificati (CRL) in un archivio diverso. Anziché creare e aggiungere un duplicato della CRL, questa funzione aggiunge un collegamento al contesto CRL originale.

Sintassi

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

Parametri

[in] hCertStore

Handle di un archivio certificati in cui è necessario aggiungere il collegamento.

[in] pCrlContext

Puntatore alla struttura CRL_CONTEXT da collegare.

[in] dwAddDisposition

Specifica l'azione da eseguire se esiste un CRL corrispondente o un collegamento a un CRL corrispondente nell'archivio. I valori di eliminazione attualmente definiti e i relativi usi sono i seguenti.

Valore Significato
CERT_STORE_ADD_ALWAYS
Non verifica la presenza di una CRL corrispondente o un collegamento a una CRL corrispondente. Un nuovo collegamento viene sempre aggiunto all'archivio. Ciò può causare duplicati in un archivio.
CERT_STORE_ADD_NEW
Se esiste una CRL corrispondente o un collegamento a una CRL corrispondente, l'operazione ha esito negativo. GetLastError restituisce il codice di CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Se esiste una CRL corrispondente o un collegamento a una CRL corrispondente, vengono confrontati i tempi di ThisUpdate nei CRL corrispondenti. Se la CRL esistente ha un tempo di ThisUpdate minore dell'ora di ThisUpdate nel nuovo CRL, il collegamento precedente viene sostituito esattamente come con CERT_STORE_ADD_REPLACE_EXISTING. Se la CRL esistente ha un tempo di ThisUpdate maggiore o uguale all'ora di ThisUpdate nel CRL da aggiungere, la funzione ha esito negativo con GetLastError che restituisce il codice di CRYPT_E_EXISTS.

Se non viene trovato un collegamento CRL corrispondente o un collegamento a una CRL corrispondente nell'archivio, viene aggiunto un nuovo collegamento all'archivio.

CERT_STORE_ADD_REPLACE_EXISTING
Se esiste un collegamento alla CRL corrispondente, il collegamento esistente viene eliminato e viene creato un nuovo collegamento all'archivio. Se non esiste un collegamento CRL corrispondente o un collegamento a una CRL corrispondente, viene aggiunto un nuovo collegamento.
CERT_STORE_ADD_USE_EXISTING
Se esiste una CRL corrispondente o un collegamento a una CRL corrispondente, viene usato tale collegamento esistente. La funzione non riesce, ma non viene aggiunto alcun nuovo collegamento. Se non esiste un collegamento O CRL corrispondente a un CRL, viene aggiunto un nuovo collegamento.

[out, optional] ppStoreContext

Puntatore a un puntatore di una copia del collegamento creato. Il parametro ppStoreContext può essere NULL per indicare che non è necessaria una copia del collegamento. Se viene creata una copia del collegamento, tale copia deve essere liberata usando CertFreeCRLContext.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per informazioni sull'errore estese, chiamare GetLastError. Alcuni codici di errore possibili seguono.

Codice restituito Descrizione
CRYPT_E_EXISTS
Per un dwAddDisposition di CERT_STORE_ADD_NEW, il CTL esiste già nell'archivio.
E_INVALIDARG
Valore di eliminazione non valido specificato nel parametro dwAddDisposition .

Commenti

Poiché il collegamento fornisce l'accesso a un contesto CRL originale, impostando una proprietà estesa nel contesto CRL collegato cambia la proprietà estesa nella posizione originale della CRL e in tutti gli altri collegamenti a tale CRL.

I collegamenti non possono essere aggiunti a un archivio aperto come raccolta. Gli archivi aperti come raccolte includono tutti gli archivi aperti con CertOpenSystemStore o CertOpenStore usando CERT_STORE_PROV_SYSTEM o CERT_STORE_PROV_COLLECTION. Per altre informazioni, vedere CertAddStoreToCollection.

Se i collegamenti vengono usati e CertCloseStore viene chiamato con CERT_CLOSE_STORE_FORCE_FLAG, l'archivio che usa collegamenti deve essere chiuso prima che l'archivio contenente i contesti originali possa essere chiuso. Se CERT_CLOSE_STORE_FORCE_FLAG non viene usato, i due archivi possono essere chiusi in entrambi gli ordini.

Per rimuovere il collegamento al contesto CRL dall'archivio certificati, usare la funzione CertDeleteCRLFromStore .

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CertAddCTLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertCloseStore

CertFreeCRLContext

CertOpenStore

CertOpenSystemStore

Funzioni elenco di revoche di certificati