Metodo ICertAdmin::GetCRL (certadm.h)

Il metodo GetCRL recupera l'elenco di revoche di certificati (CRL) corrente per l'autorità di certificazione (CA) di Servizi certificati. Questo metodo è stato definito per la prima volta nell'interfaccia ICertAdmin .

Sintassi

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

Parametri

[in] strConfig

Rappresenta una stringa di configurazione valida per la CA di cui si desidera recuperare il CRL. Questa stringa è nel formato COMPUTERNAME\CANAME, dove COMPUTERNAME è il nome di rete del server Servizi certificati e CANAME è il nome comune della CA, come immesso durante l'installazione di Servizi certificati. Per informazioni sul nome della stringa di configurazione, vedere ICertConfig.

ImportanteGetCRL non cancella la cache interna quando viene modificata la stringa di configurazione. Quando si modifica la stringa di configurazione per la CA, è necessario creare un'istanza di un nuovo oggetto ICertAdmin e chiamare di nuovo questo metodo con la nuova stringa di configurazione.
 

[in] Flags

Specifica il formato del CRL restituito. Questo parametro può essere uno dei flag seguenti.

Valore Significato
CR_OUT_BASE64HEADER
Formato BASE64 con inizio/fine.
CR_OUT_BASE64
Formato BASE64 senza inizio/fine.
CR_OUT_BINARY
Formato binario.

[out] pstrCRL

Puntatore a un BSTR che riceve l'elenco CRL.

Quando si usa questo metodo, creare una variabile di tipo BSTR , impostare la variabile su NULL e passare l'indirizzo di questa variabile nel parametro pbstrCRL . Al termine dell'uso della variabile BSTR , liberarlo chiamando la funzione SysFreeString .

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce S_OK.

Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.

Codice restituito Descrizione
E_POINTER
Il parametro strConfig non può essere NULL o non è stato trovato alcun CRL.

Commenti

Le attività di amministrazione usano DCOM. Il codice che chiama questo metodo di interfaccia come definito in una versione precedente di Certadm.h verrà eseguito su server basati su Windows, purché il client e il server eseguano entrambi lo stesso sistema operativo Windows.

Esempio

Nell'esempio seguente vengono dichiarate le variabili necessarie, inizializza COM e viene creata un'istanza della classe CertAdmin . Chiama quindi GetCRL e stampa l'esito positivo o negativo sullo schermo. Infine, libera le risorse.

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

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certadm.h (include Certsrv.h)
Libreria Certidl.lib
DLL Certadm.dll

Vedi anche

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig