Partager via


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

La méthode GetCRL récupère la liste de révocation de certificats (CRL) actuelle pour l’autorité de certification des services de certification (CA). Cette méthode a d’abord été définie dans l’interface ICertAdmin .

Syntaxe

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

Paramètres

[in] strConfig

Représente une chaîne de configuration valide pour l’autorité de certification dont vous souhaitez récupérer la liste de révocation de certificats. Cette chaîne se présente sous la forme COMPUTERNAME\CANAME, où COMPUTERNAME est le nom réseau du serveur des services de certificats et CANAME est le nom commun de l’autorité de certification, comme entré lors de l’installation des services de certificats. Pour plus d’informations sur le nom de la chaîne de configuration, consultez ICertConfig.

Important :GetCRL n’efface pas le cache interne lorsque la chaîne de configuration est modifiée. Lorsque vous modifiez la chaîne de configuration de l’autorité de certification, vous devez instancier un nouvel objet ICertAdmin et appeler à nouveau cette méthode avec la nouvelle chaîne de configuration.
 

[in] Flags

Spécifie le format de la liste de révocation de certificats retournée. Ce paramètre peut être l’un des indicateurs suivants.

Valeur Signification
CR_OUT_BASE64HEADER
Format BASE64 avec début/fin.
CR_OUT_BASE64
Format BASE64 sans début/fin.
CR_OUT_BINARY
Format binaire.

[out] pstrCRL

Pointeur vers un BSTR qui reçoit la liste de révocation de certificats.

Lorsque vous utilisez cette méthode, créez une variable de type BSTR , définissez la variable sur NULL et transmettez l’adresse de cette variable dans le paramètre pbstrCRL . Une fois que vous avez terminé d’utiliser la variable BSTR , libérez-la en appelant la fonction SysFreeString .

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles sont notamment celles figurant dans le tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code de retour Description
E_POINTER
Le paramètre strConfig ne peut pas être NULL ou aucune liste de révocation de certificats n’a été trouvée.

Remarques

Les tâches d’administration utilisent DCOM. Le code qui appelle cette méthode d’interface telle que définie dans une version antérieure de Certadm.h s’exécute sur les serveurs Windows tant que le client et le serveur exécutent le même système d’exploitation Windows.

Exemples

L’exemple suivant déclare les variables nécessaires, initialise COM et crée une instance de la classe CertAdmin. Il appelle ensuite GetCRL et imprime la réussite ou l’échec à l’écran. Enfin, il libère des ressources.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certadm.h (include Certsrv.h)
Bibliothèque Certidl.lib
DLL Certadm.dll

Voir aussi

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig