Metode ICertAdmin::GetCRL (certadm.h)

Metode GetCRL mengambil daftar pencabutan sertifikat (CRL) saat ini untuk otoritas sertifikasi Layanan Sertifikat (CA). Metode ini pertama kali didefinisikan dalam antarmuka ICertAdmin .

Sintaks

HRESULT GetCRL(
  [in]  const BSTR strConfig,
  [in]  LONG       Flags,
  [out] BSTR       *pstrCRL
);

Parameter

[in] strConfig

Mewakili string konfigurasi yang valid untuk CA yang CRL-nya ingin Anda ambil. String ini dalam bentuk COMPUTERNAME\CANAME, di mana COMPUTERNAME adalah nama jaringan server Layanan Sertifikat dan CANAME adalah nama umum CA, seperti yang dimasukkan selama penyiapan Layanan Sertifikat. Untuk informasi tentang nama string konfigurasi, lihat ICertConfig.

GetCRLpenting tidak menghapus cache internal saat string konfigurasi diubah. Saat Anda mengubah string konfigurasi untuk CA, Anda harus membuat instans objek ICertAdmin baru dan memanggil metode ini lagi dengan string konfigurasi baru.
 

[in] Flags

Menentukan format CRL yang dikembalikan. Parameter ini bisa menjadi salah satu bendera berikut.

Nilai Makna
CR_OUT_BASE64HEADER
Format BASE64 dengan awal/akhir.
CR_OUT_BASE64
Format BASE64 tanpa awal/akhir.
CR_OUT_BINARY
Format biner.

[out] pstrCRL

Pointer ke BSTR yang menerima CRL.

Saat menggunakan metode ini, buat variabel jenis BSTR , atur variabel ke NULL, dan teruskan alamat variabel ini dalam parameter pbstrCRL . Setelah Anda selesai menggunakan variabel BSTR , bebaskan dengan memanggil fungsi SysFreeString .

Menampilkan nilai

Jika fungsi berhasil, fungsi akan mengembalikan S_OK.

Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.

Menampilkan kode Deskripsi
E_POINTER
Parameter strConfig tidak boleh NULL atau tidak ada CRL yang ditemukan.

Keterangan

Tugas administrasi menggunakan DCOM. Kode yang memanggil metode antarmuka ini seperti yang didefinisikan dalam versi Certadm.h sebelumnya akan berjalan pada server berbasis Windows selama klien dan server menjalankan sistem operasi Windows yang sama.

Contoh

Contoh berikut mendeklarasikan variabel yang diperlukan, menginisialisasi COM, dan membuat instans kelas CertAdmin . Kemudian memanggil GetCRL dan mencetak keberhasilan atau kegagalan ke layar. Akhirnya, ini membebaskan sumber daya.

    ICertAdmin * pCertAdmin = NULL;  // pointer to interface object
    BSTR bstrCA = NULL;              // variable for machine\CAName
    BSTR bstrCRL = NULL;             // variable to contain
                                     // the retrieved CRL

    HRESULT hr;

    //  Initialize COM.
    hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    if (FAILED(hr))
    {
        printf("Failed CoInitializeEx [%x]\n", hr);
        goto error;
    }

    //  Create the CertAdmin object
    //  and get a pointer to its ICertAdmin interface.
    hr = CoCreateInstance( CLSID_CCertAdmin,
                           NULL,
                           CLSCTX_INPROC_SERVER,
                           IID_ICertAdmin,
                           (void **)&pCertAdmin);
    if (FAILED(hr))
    {
        printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
        goto error;
    }

    //  Note the use of two backslashes (\\) 
   //  in C++ to produce one backslash (\).
    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (FAILED(hr))
    {
        printf("Failed to allocate memory for bstrCA\n");
        goto error;
    }

    //  Retrieve the CRL.
    hr = pCertAdmin->GetCRL( bstrCA, CR_OUT_BINARY, &bstrCRL );
    if (FAILED(hr))
    {
        printf("Failed GetCRL [%x]\n", hr);
        goto error;
    }
    else
        printf("CRL retrieved successfully\n");
        //  Use the CRL as needed.

    //  Done processing.

error:

    //  Free BSTR values.
    if (NULL != bstrCA)
        SysFreeString(bstrCA);

    if (NULL != bstrCRL)
        SysFreeString(bstrCRL);

    //  Clean up object resources.
    if (NULL != pCertAdmin)
        pCertAdmin->Release();

    //  Free COM resources.
    CoUninitialize();

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header certadm.h (termasuk Certsrv.h)
Pustaka Certidl.lib
DLL Certadm.dll

Lihat juga

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig