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


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

Потребители событий ETW реализуют этот обратный вызов для получения событий из сеанса обработки трассировки. Этот обратный вызов не следует использовать в новом коде. Вместо этого реализуйте EventRecordCallback.

Тип PEVENT_CALLBACK является указателем на эту функцию обратного вызова. EventCallback — это заполнитель для имени функции, определяемой приложением.

Синтаксис

PEVENT_CALLBACK PeventCallback;

void PeventCallback(
  [in] PEVENT_TRACE pEvent
)
{...}

Параметры

[in] pEvent

Указатель на структуру EVENT_TRACE , содержащую сведения о событии.

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

None

Remarks

Примечание

Этот обратный вызов устарел, так как он получает неполные сведения о событии и несовместим со вспомогательными API-интерфейсами декодирования событий, такими как TdhGetEventInformation. Вместо реализации EventCallback реализуйте EventRecordCallback.

Чтобы указать функцию, вызываемую трассировой событий Windows для доставки событий, задайте элемент EventCallbackструктуры EVENT_TRACE_LOGFILE , передаваемой в функцию OpenTrace .

Примечание

Если функция EventCallback получает искаженные данные из ProcessTrace, дважды проверка флаги, указанные в ProcessTraceMode поле структуры, предоставленной EVENT_TRACE_LOGFILEв OpenTrace. EVENT_TRACE_LOGFILEПоля EventCallback и EventRecordCallback являются перекрывающимися членами объединения. Если поле ProcessTraceMode содержит PROCESS_TRACE_MODE_EVENT_RECORD флаг , ProcessTrace вызовет обратный вызов с помощью сигнатуры функции EventRecordCallback . В противном случае ProcessTrace вызовет обратный вызов с помощью сигнатуры функции EventCallback .

После использования OpenTrace для создания сеанса обработки трассировки вызовите функцию ProcessTrace , чтобы начать получать события.

Когда ProcessTrace начинает обработку событий из трассировки, он может вызывать обратный вызов с одним или несколькими искусственными событиями, содержащими данные о трассировке (метаданные), а не данные из зарегистрированных событий. Для этих искусственных событий задано значение EventTraceGuidHeader.Guid и Header.Class.Type на основе содержимого искусственного события. Например, первое событие из каждого файла трассировки будет искусственным событием типа 0, содержащим TRACE_LOGFILE_HEADER сведения.

Все остальные получаемые события содержат данные о событиях, зависящих от поставщика. Чтобы определить тип полученного события, используйте элементы Header.Guid и Header.Class.TypeEVENT_TRACE . Логику декодирования можно жестко запрограммировать для известных типов событий, но большинство событий будут декодированы с помощью сведений о схеме MOF, зарегистрированных в системе \\root\wmi в пространстве имен. Сведения об использовании схемы MOF события для интерпретации события см. в разделе Использование событий.

Примеры

Пример реализации функции EventCallback см. в разделе Извлечение данных события с помощью MOF.

Требования

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

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

Использование событий

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace