ICertAdmin::GetRevocationReason 方法 (certadm.h)

GetRevocationReason 方法返回吊销证书的原因。 此方法首先在 ICertAdmin 接口中定义。

在调用此方法之前,必须调用 IsValidCertificate 方法。 有关详细信息,请参阅“备注”。

语法

HRESULT GetRevocationReason(
  [out] LONG *pReason
);

参数

[out] pReason

指向将接收吊销原因的变量的指针。

返回值

C++

如果方法成功,该方法将返回S_OK,并将 pReason 参数设置为下表中列出的值之一。

如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

VB

返回一个值,该值指定吊销证书的原因。 该值可以是 Wincrypt.h) 中定义的以下吊销原因代码之一 (。
返回代码 说明
CRL_REASON_UNSPECIFIED
未指定吊销的原因。
CRL_REASON_KEY_COMPROMISE
已知或怀疑使用者的私钥或证书中验证的使用者的其他方面遭到入侵。
CRL_REASON_CA_COMPROMISE
已知或怀疑 CA 的私钥或证书中验证的 CA 的其他方面遭到入侵。
CRL_REASON_AFFILIATION_CHANGED
证书中的使用者名称或其他信息已修改,但没有理由怀疑私钥已泄露。
CRL_REASON_SUPERSEDED
证书已被取代,但没有理由怀疑私钥已泄露。
CRL_REASON_CESSATION_OF_OPERATION
颁发证书的目的不再需要证书,但没有理由怀疑私钥已泄露。
CRL_REASON_CERTIFICATE_HOLD
证书已被保留。

注解

在调用 GetRevocationReason 之前,请调用 IsValidCertificate 方法来检索证书的处置。 若要调用 GetRevocationReason,必须收到之前调用的证书处置CA_DISP_REVOKED,指示证书已被吊销。 调用 IsValidCertificate 会建立要检索其吊销原因的证书的标识。

管理任务使用 DCOM。 调用 Certadm.h 早期版本中定义的此接口方法的代码将在基于 Windows 的服务器上运行,前提是客户端和服务器都运行相同的 Windows 操作系统。

示例

// The value for nDisp was set by 
// a call to ICertAdmin2::IsValidCertificate.
if (CA_DISP_REVOKED == nDisp)
{
    // Variable to contain revocation reason.
    long       nReason;

    // Retrieve the revocation reason.
    hr = pCertAdmin->GetRevocationReason(&nReason);
    if (FAILED(hr))
    {
        printf("Failed GetRevocationReason [%x]\n", hr);
        goto error;
    }
    else
        printf("Revocation reason = %d\n", nReason );
}

要求

   
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certadm.h (包括 Certsrv.h)
Library Certidl.lib
DLL Certadm.dll

另请参阅

CCertAdmin

ICertAdmin

ICertAdmin2

IsValidCertificate