Funzione CertAddCertificateLinkToStore (wincrypt.h)
La funzione CertAddCertificateLinkToStore aggiunge un collegamento in un archivio certificati a un contesto di certificato in un archivio diverso. Anziché creare e aggiungere un duplicato del contesto del certificato, questa funzione aggiunge un collegamento al certificato originale.
Sintassi
BOOL CertAddCertificateLinkToStore(
[in] HCERTSTORE hCertStore,
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwAddDisposition,
[out, optional] PCCERT_CONTEXT *ppStoreContext
);
Parametri
[in] hCertStore
Handle dell'archivio certificati in cui deve essere aggiunto il collegamento.
[in] pCertContext
Puntatore alla struttura CERT_CONTEXT da collegare.
[in] dwAddDisposition
Specifica l'azione se esiste già un certificato corrispondente o un collegamento a un certificato corrispondente nell'archivio. I valori di eliminazione attualmente definiti e i relativi usi sono i seguenti.
Valore | Significato |
---|---|
|
La funzione non verifica la presenza di un certificato corrispondente esistente o di un collegamento a un certificato corrispondente. Un nuovo certificato viene sempre aggiunto all'archivio. Ciò può causare duplicati in un archivio. |
|
Se esiste un certificato corrispondente o un collegamento a un certificato corrispondente, l'operazione ha esito negativo. GetLastError restituisce il codice di CRYPT_E_EXISTS. |
|
Se esiste un collegamento a un certificato corrispondente, il collegamento esistente viene eliminato e viene creato un nuovo collegamento all'archivio. Se non esiste alcun certificato o collegamento corrispondente a un certificato corrispondente, ne viene aggiunto uno. |
|
Se esiste un certificato corrispondente o un collegamento a un certificato corrispondente, viene usato il certificato esistente. La funzione non riesce, ma non viene aggiunto alcun nuovo collegamento. Se non esiste alcun certificato o collegamento corrispondente a un certificato corrispondente, viene aggiunto un nuovo collegamento. |
[out, optional] ppStoreContext
Puntatore a un puntatore a 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 la funzione CertFreeCertificateContext .
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 parametro dwAddDisposition di CERT_STORE_ADD_NEW, il certificato esiste già nell'archivio. |
|
Valore di eliminazione non valido specificato nel parametro dwAddDisposition . |
Commenti
Poiché il collegamento fornisce l'accesso al contesto del certificato originale, impostando una proprietà estesa nel contesto del certificato collegato cambia la proprietà estesa nel percorso originale del certificato e in tutti gli altri collegamenti a tale certificato.
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 i collegamenti deve essere chiuso prima che l'archivio che contenga i contesti originali venga 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 del certificato dall'archivio certificati, usare la funzione CertDeleteCertificateFromStore .
Esempio
Per un esempio che usa questa funzione, vedere Esempio di programma C: Operazioni dell'archivio certificati. Per un codice aggiuntivo che usa questa funzione, vedere Esempio di programma C: raccolta e operazioni dell'archivio certificati di pari livello.
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 |