다음을 통해 공유


OpenTraceA 함수(evntrace.h)

OpenTrace 함수는 ETW 실시간 추적 세션 또는 ETW 로그 파일에서 이벤트를 소비하기 위한 ETW 추적 처리 핸들을 엽니다.

구문

PROCESSTRACE_HANDLE WMIAPI OpenTraceA(
  [in, out] PEVENT_TRACE_LOGFILEA Logfile
);

매개 변수

[in, out] Logfile

EVENT_TRACE_LOGFILE 구조체에 대한 포인터입니다. 구조체는 ETW 로그 파일 또는 실시간 ETW 세션에서 이벤트를 사용할 원본을 지정하고 소비자가 이벤트를 수신하는 데 사용할 콜백을 지정합니다. 성공하면 OpenTrace 는 열린 파일 또는 세션의 정보로 구조를 업데이트합니다.

반환 값

함수가 성공하면 추적 처리 핸들을 반환합니다. CloseTrace를 사용하여 핸들을 닫아야 합니다.

함수가 실패하면 INVALID_PROCESSTRACE_HANDLE 반환합니다. (INVALID_PROCESSTRACE_HANDLE 와 같습니다 (UINT64)UINTPTR_MAX.

참고

Windows Vista 이전에는 오류가 발생한 경우 OpenTrace가 반환 UINT64_MAX 되었습니다. 코드가 이전 운영 체제(Windows XP 또는 Windows Server 2003) 및 최신 버전의 Windows(Windows Vista 이상)를 모두 지원하는 경우 실행 중인 운영 체제를 결정하고 반환 값을 적절한 값과 비교해야 합니다.

운영 체제 프로세스 유형 실패를 나타내는 값
Windows Vista 이전 32비트 또는 64비트 0XFFFFFFFFFFFFFFFF = UINT64_MAX
Windows Vista 이상 32비트 0x00000000FFFFFFFF = (UINT64)UINTPTR_MAX
Windows Vista 이상 64비트 0XFFFFFFFFFFFFFFFF = (UINT64)UINTPTR_MAX

함수가 실패하면 GetLastError 함수를 사용하여 확장된 오류 정보를 가져올 수 있습니다. 다음은 몇 가지 일반적인 오류와 그 원인입니다.

  • ERROR_INVALID_PARAMETER

    Logfile 매개 변수는 NULL입니다.

  • ERROR_BAD_PATHNAME

    EVENT_TRACE_LOGFILELoggerName 멤버를 지정하지 않은 경우 유효한 로그 파일 이름을 지정해야 합니다.

  • ERROR_ACCESS_DENIED

    관리자 권한이 있는 사용자, 성능 로그 사용자 그룹의 사용자 및 LocalSystem, LocalService, NetworkService로 실행되는 서비스만 실시간으로 이벤트를 사용할 수 있습니다. 제한된 사용자에게 이벤트를 실시간으로 사용할 수 있는 기능을 부여하려면 성능 로그 사용자 그룹에 추가합니다.

    Windows XP 및 Windows 2000: 누구나 실시간 이벤트를 사용할 수 있습니다.

설명

추적 소비자는 이 함수를 호출하여 추적 처리 세션을 엽니다.

OpenTrace를 호출한 후 ProcessTrace 함수를 호출하여 이벤트를 처리합니다. 이벤트 처리를 마쳤으면 CloseTrace 함수를 호출하여 추적 처리 핸들을 닫습니다.

예제

OpenTrace를 사용하는 예제는 TdhFormatProperty를 사용하여 이벤트 데이터 사용을 참조하세요.

참고

evntrace.h 헤더는 OPENTrace를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 evntrace.h
라이브러리 Windows 8.1 및 Windows Server 2012 R2의 Sechost.lib; Advapi32.lib on Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista 및 Windows XP
DLL Windows 8.1 및 Windows Server 2012 R2의 Sechost.dll, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista 및 Windows XP의 Advapi32.dll

추가 정보

CloseTrace

EVENT_TRACE_LOGFILE

ProcessTrace