Поделиться через


Метод ICertExit::Notify (certexit.h)

Метод Notify вызывается подсистемой сервера для уведомления модуля выхода о возникновении события.

Синтаксис

HRESULT Notify(
  [in] LONG ExitEvent,
  [in] LONG Context
);

Параметры

[in] ExitEvent

Маска, указывающая тип события выхода, которое произошло. Для маски может быть задан один из следующих битов флага.

Значение Значение
EXITEVENT_CERTISSUED
Выданный сертификат.
EXITEVENT_CERTPENDING
Ожидается сертификат.
EXITEVENT_CERTDENIED
Сертификат отклонен.
EXITEVENT_CERTREVOKED
Сертификат отозван.
EXITEVENT_CERTRETRIEVEPENDING
Успешный вызов ICertRequest::RetrievePending.
EXITEVENT_CRLISSUED
Выданный список отзыва сертификатов (CRL).
EXITEVENT_SHUTDOWN
Завершение работы служб сертификатов.

[in] Context

Указывает дескриптор контекста, который можно использовать для получения свойств, связанных с событием, из интерфейса ICertServerExit .

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

VB

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

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

Комментарии

Если центр сертификации использует несколько модулей выхода, службы сертификации будут уведомлять каждый модуль выхода о событии (при условии, что модуль выхода запросил уведомление с помощью функции Инициализация). Порядок уведомления модулей выхода не должен предполагаться, а также не должен зависеть от обработки другого модуля выхода. Каждый модуль выхода с уведомлениями должен вернуться из Уведомления , прежде чем будет уведомлен следующий модуль выхода.

Примеры

#include <windows.h>
#include <stdio.h>
#include <Certexit.h>

STDMETHODIMP CCertExit::Notify(
    /* [in] */ LONG ExitEvent,
    /* [in] */ LONG Context)
{
    char *pszEvent;
    HRESULT hr = S_OK;

    switch (ExitEvent)
    {
    case EXITEVENT_CERTISSUED:
        //  Call application-specific function for issued certs.
        hr = MyEventCertIssued(Context);
        pszEvent = "certissued";
        break;

    case EXITEVENT_CERTPENDING:
        pszEvent = "certpending";
        break;

    case EXITEVENT_CERTDENIED:
        pszEvent = "certdenied";
        break;

    case EXITEVENT_CERTREVOKED:
        pszEvent = "certrevoked";
        break;

    case EXITEVENT_CERTRETRIEVEPENDING:
        pszEvent = "retrievepending";
        break;

    case EXITEVENT_CRLISSUED:
        pszEvent = "crlissued";
        break;

    case EXITEVENT_SHUTDOWN:
        //  Call application-specific function for shutdown.
        hr = MyEventShutdown();
        pszEvent = "shutdown";
        break;

    default:
        pszEvent = "Unexpected event";
        break;
    }

    if ( fDebug )
    {
        //  Display what took place.
        printf("Exit::Notify(%s=%x, context=%u) return=%x\n",
                      pszEvent,
                      ExitEvent,
                      Context,
                      hr);
    }

    return(hr);
}

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header certexit.h (включая Certsrv.h)

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

ICertExit

ICertExit2