다음을 통해 공유


EnableTrace 함수(evntrace.h)

추적 세션 컨트롤러는 EnableTrace 를 호출하여 ETW 이벤트 공급자가 이벤트를 추적 세션에 기록하는 방법을 구성합니다.

이 함수는 사용되지 않습니다. EnableTraceEx2 함수는 이 함수를 대체합니다.

구문

ULONG WMIAPI EnableTrace(
  [in] ULONG       Enable,
  [in] ULONG       EnableFlag,
  [in] ULONG       EnableLevel,
  [in] LPCGUID     ControlGuid,
  [in] TRACEHANDLE TraceHandle
);

매개 변수

[in] Enable

공급자로부터 이벤트를 받도록 설정하거나 공급자로부터 이벤트를 받을 때 사용되는 설정을 조정하려면 1로 설정합니다(예: 수준 및 키워드 변경). 공급자로부터 이벤트 수신을 사용하지 않도록 설정하려면 0으로 설정합니다.

[in] EnableFlag

공급자가 작성하려는 이벤트의 범주를 결정하는 키워드의 32비트 비트 마스크입니다. 일반적으로 공급자는 이벤트의 키워드(keyword) 비트가 이 값에 설정된 비트와 일치하거나이벤트에 EnableLevel 기준을 충족하는 것 외에도 키워드(keyword) 비트가 설정되어 있지 않은 경우 이벤트를 작성합니다.

참고

EventRegister 기반 공급자는 64비트 키워드를 지원합니다. EnableTraceEx2를 사용하여 64비트 MatchAnyKeyword 마스크를 사용하여 공급자를 사용하도록 설정합니다.

[in] EnableLevel

공급자가 작성하려는 이벤트의 최대 수준을 나타내는 값입니다. 일반적으로 공급자는 EnableFlag 조건을 충족하는 것 외에도 이벤트의 수준이 이 값보다 작거나 같은 경우 이벤트를 작성합니다.

이 값은 1~255 범위에 있어야 합니다. Microsoft는 아래와 같이 수준 1-5의 의미 체계를 정의합니다. 값이 낮을수록 더 심각한 이벤트가 발생합니다. EnableLevel의 각 값은 지정된 수준과 모든 더 심각한 수준을 사용하도록 설정합니다. 예를 들어 를 지정 TRACE_LEVEL_WARNING하면 소비자는 경고, 오류 및 중요한 이벤트를 받게 됩니다.

의미
TRACE_LEVEL_CRITICAL (1) 비정상적인 종료 또는 종료 이벤트
TRACE_LEVEL_ERROR (2) 심각한 오류 이벤트
TRACE_LEVEL_WARNING (3) 할당 오류와 같은 경고 이벤트
TRACE_LEVEL_INFORMATION (4) 오류 없는 정보 이벤트
TRACE_LEVEL_VERBOSE (5) 자세한 진단 이벤트

상수는 TRACE_LEVELevntrace.h에 정의됩니다. 동등한 WINMETA_LEVEL 상수는 winmeta.h에 정의됩니다.

[in] ControlGuid

사용하거나 사용하지 않도록 설정할 이벤트 공급자의 컨트롤 GUID(공급자 ID)입니다.

[in] TraceHandle

공급자를 구성하는 이벤트 추적 세션의 핸들입니다. StartTrace 함수는 새 추적이 시작될 때 이 핸들을 반환합니다. 기존 추적의 핸들을 가져오려면 ControlTrace를 사용하여 추적 이름을 기반으로 추적 속성을 쿼리한 다음 반환 EVENT_TRACE_PROPERTIES 된 데이터의 Wnode.HistoricalContext 필드에서 핸들을 가져옵니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 시스템 오류 코드 중 하나입니다. 다음은 몇 가지 일반적인 오류와 그 원인입니다.

  • ERROR_INVALID_PARAMETER

    다음 중 하나에 해당합니다.

    • ControlGuidNULL입니다.
    • TraceHandleNULL입니다.
  • ERROR_INVALID_FUNCTION

    공급자가 등록되지 않은 경우 사용 플래그 및 수준을 변경할 수 없습니다.

  • ERROR_WMI_GUID_NOT_FOUND

    공급자가 등록되지 않았습니다. KB307331 또는 Windows 2000 서비스 팩 4가 설치되고 공급자가 등록되지 않은 경우에 발생합니다. 이 오류를 방지하려면 먼저 공급자를 등록해야 합니다.

  • ERROR_NO_SYSTEM_RESOURCES

    공급자를 사용하도록 설정할 수 있는 추적 세션 수를 초과했습니다.

  • ERROR_ACCESS_DENIED

    관리 권한이 있는 사용자, 그룹의 사용자 Performance Log Users 및 , LocalService또는 NetworkServiceLocalSystem실행되는 서비스만 이벤트 공급자가 프로세스 간 세션에 사용하도록 설정할 수 있습니다. 제한된 사용자에게 이벤트 공급자를 사용하도록 설정하는 기능을 부여하려면 그룹에 추가 Performance Log Users 하거나 EventAccessControl을 참조하세요.

    Windows XP 및 Windows 2000: 누구나 이벤트 공급자를 사용하도록 설정할 수 있습니다.

설명

이벤트 추적 컨트롤러는 이 함수를 호출하여 세션에 이벤트를 쓰는 이벤트 공급자를 구성합니다. 예를 들어 컨트롤러는 공급자로부터 이벤트 수집을 시작하거나, 공급자로부터 수집되는 이벤트의 수준 또는 키워드를 조정하거나, 공급자로부터 이벤트 수집을 중지하기 위해 이 함수를 호출할 수 있습니다.

이 함수는 사용되지 않습니다. 추가 기능을 위해 새 코드는 EnableTraceEx2를 사용해야 합니다.

다음 두 함수 호출은 동일합니다.

// Obsolete:
Status = EnableTrace(
    Enable,
    EnableFlag,
    EnableLevel,
    ControlGuid,
    TraceHandle);

// Updated equivalent code:
Status = EnableTraceEx2(
    TraceHandle,
    ControlGuid,
    Enable,      // ControlCode
    EnableLevel,
    EnableFlag,  // MatchAnyKeyword
    0,           // MatchAllKeyword
    0,           // Timeout
    NULL);       // EnableParameters

세션에 대한 공급자 구성의 의미 체계에 대한 자세한 내용은 EnableTraceEx2 설명서를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 evntrace.h
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

StartTrace

EnableTraceEx2