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


структура EVENT_HEADER (evntcons.h)

Определяет сведения о событии.

Синтаксис

typedef struct _EVENT_HEADER {
  USHORT           Size;
  USHORT           HeaderType;
  USHORT           Flags;
  USHORT           EventProperty;
  ULONG            ThreadId;
  ULONG            ProcessId;
  LARGE_INTEGER    TimeStamp;
  GUID             ProviderId;
  EVENT_DESCRIPTOR EventDescriptor;
  union {
    struct {
      ULONG KernelTime;
      ULONG UserTime;
    } DUMMYSTRUCTNAME;
    ULONG64 ProcessorTime;
  } DUMMYUNIONNAME;
  GUID             ActivityId;
} EVENT_HEADER, *PEVENT_HEADER;

Члены

Size

Размер записи события в байтах.

HeaderType

Зарезервировано.

Flags

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

Значение Значение
EVENT_HEADER_FLAG_EXTENDED_INFO
Элемент ExtendedDataEVENT_RECORD содержит данные.
EVENT_HEADER_FLAG_PRIVATE_SESSION
Событие было зарегистрировано в закрытом сеансе. Используйте ProcessorTime для затраченного времени выполнения.
EVENT_HEADER_FLAG_STRING_ONLY
Данные события являются строкой Юникода, заканчивающейся null. Манифест не требуется для анализа элемента UserDataEVENT_RECORD.
EVENT_HEADER_FLAG_TRACE_MESSAGE
Поставщик использовал TraceMessage или TraceMessageVa для регистрации события. Большинство поставщиков не используют эти функции для записи событий, поэтому этот флаг обычно указывает, что событие было записано препроцессором трассировки программного обеспечения Windows (WPP).
EVENT_HEADER_FLAG_NO_CPUTIME
Используйте ProcessorTime для затраченного времени выполнения.
EVENT_HEADER_FLAG_32_BIT_HEADER
Указывает, что поставщик был запущен на 32-разрядном компьютере или в сеансе WOW64.
EVENT_HEADER_FLAG_64_BIT_HEADER
Указывает, что поставщик был запущен на 64-разрядном компьютере.
EVENT_HEADER_FLAG_CLASSIC_HEADER
Указывает, что поставщик использовал TraceEvent для регистрации события.

EventProperty

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

Значение Значение
EVENT_HEADER_PROPERTY_XML
Указывает, что для анализа данных события требуется манифест.
EVENT_HEADER_PROPERTY_FORWARDED_XML
Указывает, что данные события содержат в себе полностью отрисованное XML-описание данных, поэтому для анализа данных события не требуется манифест.
EVENT_HEADER_PROPERTY_LEGACY_EVENTLOG
Указывает, что для анализа данных события требуется класс WMI MOF.

ThreadId

Указывает поток, создавший событие.

ProcessId

Указывает процесс, создавший событие.

TimeStamp

Содержит время возникновения события. Разрешение равно системному времени, если элемент ProcessTraceModeEVENT_TRACE_LOGFILE не содержит флаг PROCESS_TRACE_MODE_RAW_TIMESTAMP. В этом случае разрешение зависит от значения элемента Wnode.ClientContextEVENT_TRACE_PROPERTIES на момент создания сеанса контроллером.

ProviderId

GUID, который уникально идентифицирует поставщика, который зарегистрировал событие.

EventDescriptor

Определяет сведения о событии, такие как идентификатор события и уровень серьезности. Дополнительные сведения см. в разделе EVENT_DESCRIPTOR.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime

Затраченное время выполнения инструкций в режиме ядра в единицах времени ЦП. Если вы используете частный сеанс, используйте значение в элементе ProcessorTime . Дополнительные сведения см. в подразделе "Примечания".

DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime

Затраченное время выполнения инструкций в пользовательском режиме в единицах времени ЦП. Если вы используете частный сеанс, используйте значение в элементе ProcessorTime . Дополнительные сведения см. в подразделе "Примечания".

DUMMYUNIONNAME.ProcessorTime

Для частных сеансов затраченное время выполнения инструкций в пользовательском режиме в тактах ЦП.

ActivityId

Идентификатор, связанный с двумя событиями. Дополнительные сведения см. в разделе EventWriteTransfer.

Комментарии

С помощью элементов KernelTime и UserTime можно определить затраты на ЦП в единицах для набора инструкций (значения указывают использование ЦП, взимаемое с этого потока во время ведения журнала). Например, если события A и B последовательно регистрируются в одном потоке и имеют номера использования ЦП 150 и 175, то действие, выполненное этим потоком между событиями A и B, стоит 25 единиц времени ЦП (175–150).

TimerResolutionструктуры TRACE_LOGFILE_HEADER содержит разрешение таймера использования ЦП в 100-наносекундных единицах. Разрешение таймера можно использовать с значениями времени ядра и пользовательского времени, чтобы определить время ЦП, используемое набором инструкций. Например, если разрешение таймера равно 156 250, то 25 единиц времени ЦП — 0,39 секунды (156 250 * 25 * 100 / 1 000 000 000). Это количество времени ЦП (не затраченное настенное время), используемое набором инструкций между событиями A и B.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Верхняя часть evntcons.h (включая Evntcons.h)

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

EVENT_RECORD