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


функция обратного вызова EVT_SUBSCRIBE_CALLBACK (winevt.h)

Реализуйте этот обратный вызов, если вы вызываете функцию EvtSubscribe для получения событий, соответствующих запросу. Служба вызывает обратный вызов при возникновении событий, соответствующих условиям запроса.

Синтаксис

EVT_SUBSCRIBE_CALLBACK EvtSubscribeCallback;

DWORD EvtSubscribeCallback(
  EVT_SUBSCRIBE_NOTIFY_ACTION Action,
  PVOID UserContext,
  EVT_HANDLE Event
)
{...}

Параметры

Action

Определяет, содержит ли параметр Event событие или код ошибки. Возможные значения действия уведомления см. в перечислении EVT_SUBSCRIBE_NOTIFY_ACTION .

UserContext

Контекст, переданный подписчиком функции EvtSubscribe .

Event

Дескриптор события. Дескриптор события действителен только в течение функции обратного вызова. Этот дескриптор можно использовать с любой функцией журнала событий, которая принимает дескриптор события (например, EvtRender или EvtFormatMessage).

Не вызывайте EvtClose , чтобы закрыть этот дескриптор; служба закроет дескриптор при возврате обратного вызова.

Если параметр Action имеет значение EvtSubscribeActionError, приведите event к DWORD для доступа к коду ошибки Win32.

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

Служба игнорирует возвращаемый код.

Комментарии

Этот обратный вызов блокирует доставку других событий в обратный вызов, поэтому оставьте реализацию максимально короткой.

Если служба обнаруживает ошибку при настройке подписки, обратный вызов не получит уведомления об ошибке.

Если параметр Flags параметра EvtSubscribe включает EvtSubscribeStrict, обратный вызов будет получать уведомление об отсутствии записей событий. В этом случае значение Event будет ERROR_EVT_QUERY_RESULT_STALE.

Чтобы отменить подписку, необходимо закрыть дескриптор подписки, возвращающийся функцией EvtSubscribe .

Примеры

Пример реализации функции обратного вызова EVT_SUBSCRIBE_CALLBACK см. в разделе Подписка на события.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header winevt.h

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

EvtSubscribe