функция обратного вызова 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 начинает обработку событий из трассировки, он может вызывать обратный вызов с одним или несколькими искусственными событиями, содержащими данные о трассировке (метаданные), а не данные из зарегистрированных событий. Для этих искусственных событий задано значение EventTraceGuid
Header.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 |