Метод ICertAdmin::GetCRL (certadm.h)
Метод GetCRL извлекает текущий список отзыва сертификатов (CRL) для центра сертификации служб сертификации (ЦС). Этот метод был впервые определен в интерфейсе ICertAdmin .
Синтаксис
HRESULT GetCRL(
[in] const BSTR strConfig,
[in] LONG Flags,
[out] BSTR *pstrCRL
);
Параметры
[in] strConfig
Представляет допустимую строку конфигурации для ЦС, список отзыва сертификатов которого требуется получить. Эта строка имеет форму COMPUTERNAME\CANAME, где COMPUTERNAME — сетевое имя сервера служб сертификатов, а CANAME — общее имя ЦС, указанное во время настройки служб сертификатов. Сведения об имени строки конфигурации см. в разделе ICertConfig.
[in] Flags
Задает формат возвращаемого списка отзыва сертификатов. Этот параметр может быть одним из следующих флагов.
Значение | Значение |
---|---|
|
Формат BASE64 с начальным и конечным. |
|
Формат BASE64 без начала и конца. |
|
Двоичный формат. |
[out] pstrCRL
Указатель на BSTR , получающий список отзыва сертификатов.
При использовании этого метода создайте переменную типа BSTR , задайте для переменной значение NULL и передайте адрес этой переменной в параметре pbstrCRL . Завершив использование переменной BSTR , освободите ее, вызвав функцию SysFreeString .
Возвращаемое значение
Если функция выполнена успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT, указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Код возврата | Описание |
---|---|
|
Параметр strConfig не может иметь значение NULL или список отзыва сертификатов не найден. |
Комментарии
Задачи администрирования используют DCOM. Код, вызывающий этот метод интерфейса, как определено в более ранней версии Certadm.h, будет выполняться на серверах Windows, если клиент и сервер работают под одной операционной системой Windows.
Примеры
В следующем примере объявляются необходимые переменные, инициализируется COM и создается экземпляр класса CertAdmin . Затем он вызывает GetCRL и выводит на экран сообщение об успешном или неудачном выполнении. Наконец, он освобождает ресурсы.
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();
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certadm.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
DLL | Certadm.dll |
См. также раздел
ICertAdmin2