структура EVENT_INSTANCE_HEADER (evntrace.h)
Структура EVENT_INSTANCE_HEADER содержит стандартные сведения трассировки событий, общие для всех событий, написанных TraceEventInstance. Структура также содержит дескрипторы регистрации для класса трассировки событий и связанного родительского события, которые используются для трассировки экземпляров транзакции или иерархических связей между связанными событиями.
Синтаксис
typedef struct _EVENT_INSTANCE_HEADER {
USHORT Size;
union {
USHORT FieldTypeFlags;
struct {
UCHAR HeaderType;
UCHAR MarkerFlags;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
union {
ULONG Version;
struct {
UCHAR Type;
UCHAR Level;
USHORT Version;
} Class;
} DUMMYUNIONNAME2;
ULONG ThreadId;
ULONG ProcessId;
LARGE_INTEGER TimeStamp;
ULONGLONG RegHandle;
ULONG InstanceId;
ULONG ParentInstanceId;
union {
struct {
ULONG KernelTime;
ULONG UserTime;
} DUMMYSTRUCTNAME;
ULONG64 ProcessorTime;
struct {
ULONG EventId;
ULONG Flags;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME3;
ULONGLONG ParentRegHandle;
} EVENT_INSTANCE_HEADER, *PEVENT_INSTANCE_HEADER;
Члены
Size
Общее число байтов события. Размер должен включать размер структуры EVENT_INSTANCE_HEADER , а также размер любых данных, относящихся к событиям, добавленных в эту структуру. Размер должен быть меньше, чем размер буфера сеанса трассировки событий минус 72 (0x48).
DUMMYUNIONNAME
Объединение различных структур и членов.
DUMMYUNIONNAME.FieldTypeFlags
Зарезервировано.
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Зарезервировано.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType
Зарезервировано.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags
Зарезервировано.
DUMMYUNIONNAME2
Объединение класса в двух формах.
DUMMYUNIONNAME2.Version
Это сводка членов Класса. Байт низкого порядка содержит тип, следующий байт — уровень, а последние два байта — версию.
DUMMYUNIONNAME2.Class
Структура класса.
DUMMYUNIONNAME2.Class.Type
Тип события. Поставщик может определять собственные типы событий или использовать предопределенные типы событий, перечисленные в следующей таблице.
EVENT_TRACE_TYPE_CHECKPOINT
Событие контрольной точки. Используется для события, которое не находится в начале или конце действия.
EVENT_TRACE_TYPE_DC_END
Событие завершения сбора данных.
EVENT_TRACE_TYPE_DC_START
Событие начала сбора данных.
EVENT_TRACE_TYPE_DEQUEUE
Событие вывода в очередь. Используйте, когда действие помещается в очередь перед его началом. Используйте EVENT_TRACE_TYPE_START, чтобы отметить время постановки рабочего элемента в очередь. Используйте тип события dequeue, чтобы отметить время фактического начала работы над элементом. Используйте EVENT_TRACE_TYPE_END, чтобы отметить время завершения работы над элементом.
EVENT_TRACE_TYPE_END
Событие End. Используется для трассировки конечного состояния многоэтапного события.
EVENT_TRACE_TYPE_EXTENSION
Событие расширения. Используйте для события, которое является продолжением предыдущего события. Например, используйте тип события расширения, когда трассировка событий записывает больше данных, чем может поместиться в буфере сеанса.
EVENT_TRACE_TYPE_INFO
Информационное событие. Это тип события по умолчанию.
EVENT_TRACE_TYPE_REPLY
Событие ответа. Используйте, когда приложение, запрашивающее ресурсы, может получить несколько ответов. Например, если клиентское приложение запрашивает URL-адрес, а веб-сервер отвечает, отправляя несколько файлов, каждый полученный файл можно пометить как событие ответа.
EVENT_TRACE_TYPE_START
Событие Start. Используется для трассировки начального состояния многоэтапного события.
Если GUID класса трассировки событий поддерживает несколько типов событий, потребители будут использовать тип события для определения события и интерпретации его содержимого.
DUMMYUNIONNAME2.Class.Level
Определенное поставщиком значение, определяющее уровень серьезности, используемый для создания события. Значение в диапазоне от 0 до 255. Контроллер задает уровень серьезности при вызове функции EnableTraceEx2 . Поставщик получает уровень серьезности, вызывая функцию GetTraceEnableLevel из своей реализации ControlCallback . Поставщик использует значение для задания этого элемента.
Трассировка событий Windows определяет следующие уровни серьезности. При выборе уровня выше 1 также будут включены события для более низких уровней. Например, если контроллер указывает TRACE_LEVEL_WARNING (3), поставщик также создает события TRACE_LEVEL_FATAL (1) и TRACE_LEVEL_ERROR (2).
Значение | Значение |
---|---|
TRACE_LEVEL_CRITICAL (1) | Аномальные события выхода или завершения |
TRACE_LEVEL_ERROR (2) | Серьезные события ошибок |
TRACE_LEVEL_WARNING (3) | Предупреждающие события, такие как сбои выделения |
TRACE_LEVEL_INFORMATION (4) | События без ошибок, такие как события входа или выхода |
TRACE_LEVEL_VERBOSE (5) | Подробные события трассировки |
DUMMYUNIONNAME2.Class.Version
Указывает версию класса трассировки событий, который используется для регистрации события. Укажите ноль, если существует только одна версия класса трассировки событий. Версия сообщает потребителю, какой класс MOF использовать для расшифровки данных события.
ThreadId
В выходных данных определяет поток, создающий событие.
Обратите внимание, что в Windows 2000 ThreadId был значением ULONGLONG .
ProcessId
В выходных данных определяет процесс, создающий событие.
Windows 2000: Этот член не поддерживается.
TimeStamp
В выходных данных содержит время возникновения события в 100-наносекундных интервалах с полуночи 1 января 1601 года.
RegHandle
Обработка для зарегистрированного класса трассировки событий. Задайте это свойство перед вызовом функции TraceEventInstance .
Функция RegisterTraceGuids создает этот дескриптор (см. параметр TraceGuidReg ).
InstanceId
В выходных данных содержит идентификатор экземпляра трассировки событий, связанный с RegHandle.
ParentInstanceId
В выходных данных содержит идентификатор экземпляра трассировки событий, связанный с ParentRegHandle.
DUMMYUNIONNAME3
Объединение структур и членов.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Структура, содержащая следующие элементы.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime
Затраченное время выполнения инструкций в режиме ядра в тактах ЦП. Если вы используете частный сеанс, используйте значение в элементе ProcessorTime .
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime
Затраченное время выполнения инструкций в пользовательском режиме в тактах ЦП. Если вы используете частный сеанс, используйте значение в элементе ProcessorTime .
DUMMYUNIONNAME3.ProcessorTime
Для частных сеансов затраченное время выполнения инструкций в пользовательском режиме в тактах ЦП.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2
Объединение структур и членов.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId
Идентификатор события.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags
Должен содержать WNODE_FLAG_TRACED_GUID, а также может содержать любое сочетание следующих элементов.
WNODE_FLAG_USE_GUID_PTR
Укажите, содержит ли член GuidPtr guid класса.
WNODE_FLAG_USE_MOF_PTR
Укажите, содержит ли массив структур MOF_FIELD данные событий, добавленные к этой структуре. Количество элементов в массиве ограничено MAX_MOF_FIELDS.
ParentRegHandle
Обработка зарегистрированного класса трассировки родительского события. Задайте это свойство перед вызовом функции TraceEventInstance , если требуется отследить иерархическую связь (родительский/дочерний элемент) между связанными событиями.
Функция RegisterTraceGuids создает этот дескриптор (см. параметр TraceGuidReg ).
Комментарии
Не забудьте инициализировать память для этой структуры до нуля, прежде чем задавать какие-либо члены.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | evntrace.h |