Método ICertAdmin::GetCRL (certadm.h)
O método GetCRL recupera a CRL ( lista de certificados revogados ) atual para a AC ( autoridade de certificação ) dos Serviços de Certificados. Esse método foi definido pela primeira vez na interface ICertAdmin .
Sintaxe
HRESULT GetCRL(
[in] const BSTR strConfig,
[in] LONG Flags,
[out] BSTR *pstrCRL
);
Parâmetros
[in] strConfig
Representa uma cadeia de caracteres de configuração válida para a AC cuja CRL você deseja recuperar. Essa cadeia de caracteres está no formato COMPUTERNAME\CANAME, em que COMPUTERNAME é o nome de rede do servidor de Serviços de Certificados e CANAME é o nome comum da AC, conforme inserido durante a instalação dos Serviços de Certificado. Para obter informações sobre o nome da cadeia de caracteres de configuração, consulte ICertConfig.
[in] Flags
Especifica o formato da CRL retornada. Esse parâmetro pode ser um dos sinalizadores a seguir.
Valor | Significado |
---|---|
|
Formato BASE64 com início/término. |
|
Formato BASE64 sem início/término. |
|
Formato binário. |
[out] pstrCRL
Um ponteiro para um BSTR que recebe a CRL.
Ao usar esse método, crie uma variável do tipo BSTR , defina a variável como NULL e passe o endereço dessa variável no parâmetro pbstrCRL . Quando terminar de usar a variável BSTR , libere-a chamando a função SysFreeString .
Retornar valor
Se a função for bem-sucedida, a função retornará S_OK.
Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.
Código de retorno | Descrição |
---|---|
|
O parâmetro strConfig não pode ser NULL ou nenhuma CRL foi encontrada. |
Comentários
As tarefas de administração usam o DCOM. O código que chama esse método de interface conforme definido em uma versão anterior do Certadm.h será executado em servidores baseados no Windows, desde que o cliente e o servidor estejam executando o mesmo sistema operacional Windows.
Exemplos
O exemplo a seguir declara as variáveis necessárias, inicializa COM e cria uma instância da classe CertAdmin . Em seguida, ele chama GetCRL e imprime êxito ou falha na tela. Por fim, ele 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 | Valor |
---|---|
Cliente mínimo com suporte | Nenhum compatível |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | certadm.h (inclua Certsrv.h) |
Biblioteca | Certidl.lib |
DLL | Certadm.dll |
Confira também
ICertAdmin2