Метод ICertRequest::RetrievePending (certcli.h)

Метод RetrievePending извлекает состояние ликвидации сертификата из предыдущего запроса, который ранее возвращал CR_DISP_INCOMPLETE или CR_DISP_UNDER_SUBMISSION.

Если итоговое состояние ликвидации CR_DISP_ISSUED, можно получить выданный сертификат, вызвав метод ICertRequest3::GetCertificate. Если возвращается расположение, отличное от CR_DISP_ISSUED, вызовите метод ICertRequest3::GetLastStatus, ICertRequest3::GetDispositionMessage или оба метода для получения дополнительных сведений.

Синтаксис

HRESULT RetrievePending(
  [in]          LONG       RequestId,
  [in]          const BSTR strConfig,
  [out, retval] LONG       *pDisposition
);

Параметры

[in] RequestId

Идентификатор запроса, который ранее возвращал CR_DISP_INCOMPLETE или CR_DISP_UNDER_SUBMISSION.

[in] strConfig

Представляет допустимую строку конфигурации для сервера служб сертификатов. Строка может быть URL-адресом HTTPS для сервера регистрации или в формате Имя_\компьютера CAName, где ComputerName — сетевое имя сервера, а CAName — общее имя центра сертификации, указанное при настройке служб сертификатов. Дополнительные сведения об имени строки конфигурации см. в разделе ICertConfig.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: URL-адрес HTTPS не поддерживается в качестве входных данных.

[out, retval] pDisposition

Указатель на значение ликвидации запроса.

Возвращаемое значение

C++

Если метод завершается успешно, метод возвращает S_OK.

После успешного выполнения этой функции параметру *pDisposition присваивается одно из значений в следующей таблице.

Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

VB

Возвращаемое значение указывает ликвидацию запроса. Ликвидация является одним из следующих значений.
Код возврата Описание
CR_DISP_INCOMPLETE
Запрос не завершен
CR_DISP_ERROR
Не удалось выполнить запрос
CR_DISP_DENIED
Запрос отклонен
CR_DISP_ISSUED
Выданный сертификат
CR_DISP_ISSUED_OUT_OF_BAND
Сертификат, выданный отдельно
CR_DISP_UNDER_SUBMISSION
Запрос, принятый в рамках отправки

Комментарии

При успешном вызове этого метода создается событие EXITEVENT_CERTRETRIEVEPENDING. Активный модуль выхода получит уведомление об этом событии (посредством вызова ICertExit3::Notify), если модуль выхода указал это событие при вызове ICertExit3::Initialize.

Примеры

BSTR    bstrCA = NULL;
long    nReqID, nDisp;

// In this example, the request ID is hard-coded.
nReqID = 1234;

// Note use of two '\' in C++ to produce one '\'.
bstrCA = SysAllocString(L"server01\\myCAName");

// pCertRequest is previously instantiated ICertRequest
// object pointer. Retrieve the status for the specified request.
hr = pCertRequest->RetrievePending( nReqID, bstrCA, &nDisp );
if (FAILED(hr))
{
    printf("Failed RetrievePending [%x]\n", hr);
    goto error;
}
else
{
    // Use the disposition value as needed...
}
// Free BSTR resource.
if ( NULL != bstrCA )
    SysFreeString( bstrCA );

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header certcli.h (включая Certsrv.h)
Библиотека Certidl.lib
DLL Certcli.dll

См. также раздел

CCertRequest

ICertConfig

ICertRequest

ICertRequest2

ICertRequest3