다음을 통해 공유


PEVENT_CALLBACK 콜백 함수(evntrace.h)

ETW 이벤트 소비자는 추적 처리 세션에서 이벤트를 수신하기 위해 이 콜백을 구현합니다. 이 콜백은 새 코드에서 사용하면 안 됩니다. 대신 EventRecordCallback을 구현합니다.

PEVENT_CALLBACK 형식은 이 콜백 함수에 대한 포인터입니다. EventCallback 은 애플리케이션 정의 함수 이름의 자리 표시자입니다.

구문

PEVENT_CALLBACK PeventCallback;

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

매개 변수

[in] pEvent

이벤트 정보를 포함하는 EVENT_TRACE 구조체에 대한 포인터입니다.

반환 값

없음

설명

참고

이 콜백은 이벤트에 대한 불완전한 정보를 수신하고 TdhGetEventInformation과 같은 이벤트 디코딩 도우미 API와 호환되지 않으므로 사용되지 않습니다. EventCallback을 구현하는 대신 EventRecordCallback을 구현합니다.

ETW가 이벤트를 전달하기 위해 호출하는 함수를 지정하려면 OpenTrace 함수에 전달하는 EVENT_TRACE_LOGFILE 구조체의 EventCallback 멤버를 설정합니다.

참고

EventCallback 함수가 ProcessTrace에서 왜곡된 데이터를 수신하는 경우 OpenTraceProcessTraceMode 제공된 구조체의 EVENT_TRACE_LOGFILE 필드에 지정된 플래그를 두 번 검사. EVENT_TRACE_LOGFILEEventCallbackEventRecordCallback 필드는 공용 구조체의 겹치는 멤버입니다. 필드에 플래그가 ProcessTraceModePROCESS_TRACE_MODE_EVENT_RECORD 포함된 경우 ProcessTraceEventRecordCallback 함수 서명을 사용하여 콜백을 호출합니다. 그렇지 않으면 ProcessTraceEventCallback 함수 서명을 사용하여 콜백을 호출합니다.

OpenTrace를 사용하여 추적 처리 세션을 만든 후 ProcessTrace 함수를 호출하여 이벤트 수신을 시작합니다.

ProcessTrace가 추적에서 이벤트 처리를 시작하면 기록된 이벤트의 데이터가 아닌 추적(메타데이터)에 대한 데이터가 포함된 하나 이상의 가상 이벤트로 콜백을 호출할 수 있습니다. 이러한 가상 이벤트에는 Header.Guid 가 로 EventTraceGuid 설정되고 가상 이벤트의 내용에 따라 Header.Class.Type 이 설정됩니다. 예를 들어 각 추적 파일의 첫 번째 이벤트는 TRACE_LOGFILE_HEADER 정보를 포함하는 형식 0의 가상 이벤트가 됩니다.

받는 다른 모든 이벤트에는 공급자별 이벤트 데이터가 포함됩니다. EVENT_TRACEHeader.GuidHeader.Class.Type 멤버를 사용하여 받은 이벤트의 유형을 확인합니다. 잘 알려진 이벤트 유형에 대한 하드 코드 디코딩 논리가 가능하지만 대부분의 이벤트는 네임스페이스의 시스템에 \\root\wmi 등록된 MOF 스키마 정보를 사용하여 디코딩됩니다. 이벤트의 MOF 스키마를 사용하여 이벤트를 해석하는 방법에 대한 자세한 내용은 이벤트 사용을 참조하세요.

예제

EventCallback 함수의 예제 구현은 MOF를 사용하여 이벤트 데이터 검색을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 evntrace.h

추가 정보

이벤트 사용

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace