Compartir a través de


Método ICertAdmin::GetCRL (certadm.h)

El método GetCRL recupera la lista de revocación de certificados (CRL) actual para la entidad de certificación (CA) de Servicios de certificados. Este método se definió por primera vez en la interfaz ICertAdmin .

Sintaxis

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

Parámetros

[in] strConfig

Representa una cadena de configuración válida para la ENTIDAD de certificación cuya CRL desea recuperar. Esta cadena tiene el formato COMPUTERNAME\CANAME, donde COMPUTERNAME es el nombre de red del servidor de Servicios de certificados y CANAME es el nombre común de la ENTIDAD de certificación, tal como se especifica durante la configuración de Servicios de certificados. Para obtener información sobre el nombre de la cadena de configuración, vea ICertConfig.

ImportanteGetCRL no borra la memoria caché interna cuando se cambia la cadena de configuración. Al cambiar la cadena de configuración de la ENTIDAD de certificación, debe crear una instancia de un nuevo objeto ICertAdmin y llamar a este método de nuevo con la nueva cadena de configuración.
 

[in] Flags

Especifica el formato de la CRL devuelta. Este parámetro puede ser una de las marcas siguientes.

Valor Significado
CR_OUT_BASE64HEADER
Formato BASE64 con begin/end.
CR_OUT_BASE64
Formato BASE64 sin begin/end.
CR_OUT_BINARY
Formato binario.

[out] pstrCRL

Puntero a un BSTR que recibe la CRL.

Al usar este método, cree una variable de tipo BSTR , establezca la variable en NULL y pase la dirección de esta variable en el parámetro pbstrCRL . Cuando haya terminado de usar la variable BSTR , ábrela llamando a la función SysFreeString .

Valor devuelto

Si la función se realiza correctamente, la función devuelve S_OK.

Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código devuelto Descripción
E_POINTER
El parámetro strConfig no puede ser NULL o no se ha encontrado ninguna CRL.

Comentarios

Las tareas de administración usan DCOM. El código que llama a este método de interfaz tal como se define en una versión anterior de Certadm.h se ejecutará en servidores basados en Windows siempre que el cliente y el servidor ejecuten el mismo sistema operativo Windows.

Ejemplos

En el ejemplo siguiente se declaran las variables necesarias, se inicializa COM y se crea una instancia de la clase CertAdmin . A continuación, llama a GetCRL e imprime el éxito o error en la pantalla. Por último, libera recursos.

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

Requisitos

Requisito Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certadm.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certadm.dll

Consulte también

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig