ICertAdmin::GetCRL メソッド (certadm.h)

GetCRL メソッドは、証明書サービス証明機関 (CA) の現在の証明書失効リスト (CRL) を取得します。 このメソッドは、最初に ICertAdmin インターフェイスで定義されました。

構文

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

パラメーター

[in] strConfig

CRL を取得する CA の有効な構成文字列を表します。 この文字列は COMPUTERNAME\CANAME の形式です。COMPUTERNAME は証明書サービス サーバーのネットワーク名で、CANAME は証明書サービスのセットアップ時に入力された CA の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。

重要GetCRL は、構成文字列が変更されたときに内部キャッシュをクリアしません。 CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、このメソッドを新しい構成文字列で再度呼び出す必要があります。
 

[in] Flags

返される CRL の形式を指定します。 このパラメーターには、次のいずれかのフラグを指定できます。

意味
CR_OUT_BASE64HEADER
開始/終了を含む BASE64 形式。
CR_OUT_BASE64
開始/終了のない BASE64 形式。
CR_OUT_BINARY
バイナリ形式。

[out] pstrCRL

CRL を受け取る BSTR へのポインター。

このメソッドを使用する場合は、 BSTR 型の変数を作成し、変数を NULL に設定し、 pbstrCRL パラメーターでこの変数のアドレスを渡します。 BSTR 変数の使用が完了したら、SysFreeString 関数を呼び出して解放します。

戻り値

関数が成功した場合、関数はS_OKを返します。

関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通 HRESULT 値」を参照してください。

リターン コード 説明
E_POINTER
strConfig パラメーターを NULL にすることはできません。CRL が見つかりませんでした。

注釈

管理タスクでは DCOM を使用します。 以前のバージョンの Certadm.h で定義されているこのインターフェイス メソッドを呼び出すコードは、クライアントとサーバーの両方が同じ Windows オペレーティング システムを実行している限り、Windows ベースのサーバー上で実行されます。

次の例では、必要な変数を宣言し、COM を初期化し、 CertAdmin クラスのインスタンスを作成します。 次に 、GetCRL を 呼び出し、成功または失敗を画面に出力します。 最後に、リソースを解放します。

    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();

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certadm.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certadm.dll

こちらもご覧ください

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig