다음을 통해 공유


CloseTrace 함수(evntrace.h)

CloseTrace 함수는 OpenTrace를 사용하여 만든 추적 처리 세션을 닫습니다.

구문

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
  [in] TRACEHANDLE TraceHandle
);

매개 변수

[in] TraceHandle

닫을 추적 처리 세션에 대한 핸들입니다. OpenTrace 함수는 이 핸들을 반환합니다.

반환 값

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

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

  • ERROR_INVALID_HANDLE

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

    • TraceHandle0입니다.
    • TraceHandleINVALID_PROCESSTRACE_HANDLE.
    • TraceHandle 은 유효한 핸들이 아닙니다.
  • ERROR_BUSY

    Windows Vista 이전에는 ProcessTrace 함수가 완료될 때까지 추적을 닫을 수 없습니다.

  • ERROR_CTX_CLOSE_PENDING

    호출이 성공했습니다. ProcessTrace 함수는 버퍼의 모든 실시간 이벤트를 처리한 후 중지됩니다(새 이벤트는 수신되지 않음).

설명

소비자는 이 함수를 호출하여 OpenTrace에서 반환된 추적 핸들을 닫습니다.

중요

이 함수를 사용하여 StartTrace에서 반환된 추적 핸들을 닫지 마세요.

로그 파일에서 이벤트를 처리하는 경우 ProcessTrace 함수가 반환된 후에만 이 함수를 호출합니다. 그러나 실시간 이벤트를 처리하는 경우 ProcessTrace 가 반환되기 전에 이 함수를 호출할 수 있습니다. 추적 처리를 중지하는 또 다른 방법은 BufferCallback에서 FALSE를 반환하는 것입니다.

ProcessTrace가 반환되기 전에 이 함수를 호출하면 CloseTrace 함수는 ERROR_CTX_CLOSE_PENDING 반환합니다. ERROR_CTX_CLOSE_PENDING 코드는 CloseTrace 함수 호출이 성공했음을 나타냅니다. ProcessTrace 함수는 이전에 큐에 대기한 모든 이벤트를 처리한 후 이벤트 처리를 중지합니다(CloseTrace 함수를 호출한 후 ProcessTrace는 새 이벤트를 수신하지 않음). BufferCallback, EventCallback 또는 EventClassCallback 콜백에서 CloseTrace 함수 호출할 수 있습니다.

Windows Vista 이전: ProcessTrace가 반환된 후에만 CloseTrace를 호출할 수 있습니다.

예제

CloseTrace를 사용하는 예제는 TDH를 사용하여 이벤트 데이터 검색을 참조하세요.

요구 사항

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

추가 정보

OpenTrace

ProcessTrace