Fungsi CertAddCTLLinkToStore (wincrypt.h)

Fungsi CertAddCTLLinkToStore menambahkan tautan di penyimpanan ke konteksdaftar kepercayaan sertifikat (CTL) di penyimpanan yang berbeda. Alih-alih membuat dan menambahkan duplikat konteks CTL, fungsi ini menambahkan tautan ke konteks CTL asli.

Sintaks

BOOL CertAddCTLLinkToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            PCCTL_CONTEXT pCtlContext,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCTL_CONTEXT *ppStoreContext
);

Parameter

[in] hCertStore

Menangani penyimpanan sertifikat tempat tautan akan ditambahkan.

[in] pCtlContext

Penunjuk ke struktur CTL_CONTEXT yang akan ditautkan.

[in] dwAddDisposition

Menentukan tindakan yang akan diambil jika CTL yang cocok atau tautan ke CTL yang cocok sudah ada di penyimpanan. Nilai disposisi yang ditentukan saat ini dan penggunaannya adalah sebagai berikut.

Nilai Makna
CERT_STORE_ADD_ALWAYS
Tidak memeriksa CTL yang cocok atau tautan ke CTL yang cocok. CTL baru selalu ditambahkan ke penyimpanan. Ini dapat menyebabkan duplikat di toko.
CERT_STORE_ADD_NEW
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, operasi gagal. GetLastError mengembalikan kode CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, waktu ThisUpdate pada CTL dibandingkan. Jika CTL yang ada memiliki waktu ThisUpdate kurang dari waktu ThisUpdate pada CTL baru, CTL atau tautan lama diganti sama seperti CERT_STORE_ADD_REPLACE_EXISTING. Jika CTL yang ada memiliki waktu ThisUpdate yang lebih besar dari atau sama dengan waktu ThisUpdate pada CTL yang akan ditambahkan, fungsi gagal dengan GetLastError mengembalikan kode CRYPT_E_EXISTS.

Jika CTL yang cocok atau tautan ke CTL yang cocok tidak ditemukan di penyimpanan, CTL baru ditambahkan ke penyimpanan.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
Tindakan ini sama dengan untuk CERT_STORE_ADD_NEWER, kecuali bahwa jika CTL yang lebih lama diganti, properti CTL yang lebih lama dimasukkan ke dalam CTL pengganti.
CERT_STORE_ADD_REPLACE_EXISTING
Jika CTL yang cocok atau tautan ke CTL yang cocok ada, CTL atau tautan yang ada akan dihapus dan CTL baru dibuat dan ditambahkan ke penyimpanan. Jika CTL yang cocok atau tautan ke CTL yang cocok tidak ada, CTL akan ditambahkan.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Jika CTL yang cocok ada di penyimpanan, konteks yang ada akan dihapus sebelum membuat dan menambahkan konteks baru. Konteks tambahan mewarisi properti dari CTL yang ada.
CERT_STORE_ADD_USE_EXISTING
Jika ada CTL yang cocok atau tautan ke CTL yang cocok, CTL yang ada akan digunakan dan properti dari CTL baru ditambahkan. Fungsi tidak gagal, tetapi tidak ada CTL baru yang ditambahkan. Jika ppCertContext bukan NULL, konteks yang ada diduplikasi.

Jika CTL yang cocok atau tautan ke CTL yang cocok tidak ada, CTL baru ditambahkan.

[out, optional] ppStoreContext

Penunjuk ke penunjuk ke salinan tautan yang dibuat. ppStoreContext dapat berupa NULL untuk menunjukkan bahwa salinan tautan tidak diperlukan. Jika salinan tautan dibuat, salinan tersebut harus dibebaskan menggunakan CertFreeCTLContext.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Beberapa kemungkinan kode kesalahan mengikuti.

Menampilkan kode Deskripsi
CRYPT_E_EXISTS
Untuk dwAddDisposition CERT_STORE_ADD_NEW, CTL sudah ada di penyimpanan.
E_INVALIDARG
Tambahkan disposisi yang ditentukan oleh parameter dwAddDisposition tidak valid.

Keterangan

Karena tautan menyediakan akses ke konteks CTL asli, mengatur properti yang diperluas dalam perubahan konteks CTL tertaut yang memperluas properti di lokasi CTL asli dan di tautan lain ke CTL tersebut.

Tautan tidak dapat ditambahkan ke penyimpanan yang dibuka sebagai koleksi. Toko yang dibuka sebagai koleksi mencakup semua toko yang dibuka dengan CertOpenSystemStore atau CertOpenStore menggunakan CERT_STORE_PROV_SYSTEM atau CERT_STORE_PROV_COLLECTION. Lihat juga CertAddStoreToCollection.

Ketika tautan digunakan dan CertCloseStore dipanggil dengan CERT_CLOSE_STORE_FORCE_FLAG, penyimpanan yang menggunakan tautan harus ditutup sebelum penyimpanan yang berisi konteks asli ditutup. Jika CERT_CLOSE_STORE_FORCE_FLAG tidak digunakan, kedua toko dapat ditutup dalam salah satu pesanan.

Untuk menghapus tautan konteks CTL dari penyimpanan sertifikat, gunakan fungsi CertDeleteCTLFromStore .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll

Lihat juga

CertAddCRLLinkToStore

CertAddCertificateLinkToStore

CertAddStoreToCollection

CertFreeCTLContext

CertOpenSystemStore

Fungsi Daftar Kepercayaan Sertifikat