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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
---|---|
|
Per un dwAddDisposition di CERT_STORE_ADD_NEW, il CTL esiste già nell'archivio. |
|
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 |