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
EVENT_RECORDExtendedData 멤버에는 데이터가 포함됩니다.
EVENT_HEADER_FLAG_PRIVATE_SESSION
이벤트가 비공개 세션에 기록되었습니다. 경과된 실행 시간에 ProcessorTime 을 사용합니다.
EVENT_HEADER_FLAG_STRING_ONLY
이벤트 데이터는 null로 끝나는 유니코드 문자열입니다. EVENT_RECORDUserData 멤버를 구문 분석하기 위해 매니페스트가 필요하지 않습니다.
EVENT_HEADER_FLAG_TRACE_MESSAGE
공급자는 TraceMessage 또는 TraceMessageVa 를 사용하여 이벤트를 기록했습니다. 대부분의 공급자는 이러한 함수를 사용하여 이벤트를 작성하지 않으므로 이 플래그는 일반적으로 이벤트가 WPP(Windows Software Trace Preprocessor )에 의해 작성되었음을 나타냅니다.
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

이벤트가 발생한 시간을 포함합니다. EVENT_TRACE_LOGFILE ProcessTraceMode 멤버에 PROCESS_TRACE_MODE_RAW_TIMESTAMP 플래그가 포함되지 않는 한 해결 방법은 컨트롤러가 세션을 만들 때 EVENT_TRACE_PROPERTIES Wnode.ClientContext멤버의 값 에 따라 결정됩니다.

ProviderId

이벤트를 기록한 공급자를 고유하게 식별하는 GUID입니다.

EventDescriptor

이벤트 식별자 및 심각도 수준과 같은 이벤트에 대한 정보를 정의합니다. 자세한 내용은 EVENT_DESCRIPTOR.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.KernelTime

커널 모드 명령에 대한 경과된 실행 시간(CPU 시간 단위)입니다. 프라이빗 세션을 사용하는 경우 ProcessorTime 멤버의 값을 대신 사용합니다. 자세한 내용은 설명 부분을 참조하세요.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.UserTime

CPU 시간 단위의 사용자 모드 명령에 대한 경과된 실행 시간입니다. 프라이빗 세션을 사용하는 경우 ProcessorTime 멤버의 값을 대신 사용합니다. 자세한 내용은 설명 부분을 참조하세요.

DUMMYUNIONNAME.ProcessorTime

프라이빗 세션의 경우 사용자 모드 명령에 대한 경과된 실행 시간(CPU 틱)입니다.

ActivityId

두 이벤트를 연결하는 식별자입니다. 자세한 내용은 EventWriteTransfer를 참조하세요.

설명

KernelTimeUserTime 멤버를 사용하여 명령 집합에 대한 CPU 비용을 단위로 확인할 수 있습니다(값은 로깅 시 해당 스레드에 청구된 CPU 사용량을 나타냅니다). 예를 들어 이벤트 A와 이벤트 B가 동일한 스레드에 의해 연속적으로 기록되고 CPU 사용량 번호가 150 및 175인 경우 이벤트 A와 B 간에 해당 스레드에서 수행한 작업은 25 CPU 시간 단위(175 ~150)의 비용이 듭니다.

TRACE_LOGFILE_HEADER 구조체의 TimerResolution은 CPU 사용량 타이머의 해상도를 100나노초 단위로 포함합니다. 커널 시간 및 사용자 시간 값과 함께 타이머 해상도를 사용하여 명령 집합이 사용한 CPU 시간의 양을 확인할 수 있습니다. 예를 들어 타이머 해상도가 156,250인 경우 25개의 CPU 시간 단위는 0.39초(156,250 * 25 * 100/1,000,000,000)입니다. 이벤트 A와 B 간의 지침 집합에서 사용하는 CPU 시간(경과된 벽 클록 시간이 아님)입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 evntcons.h(Evntcons.h 포함)

추가 정보

EVENT_RECORD