이벤트 추적의 새로운 기능
이 섹션에서는 각 릴리스에서 Windows용 이벤트 추적에 추가된 새로운 기능에 대해 설명합니다.
Windows 10, 버전 1709
이제 ETW는 필요에 따라 세션에 사용하도록 설정된 모든 공급자에 대한 이진 파일을 추적할 수 있습니다. 추적은 호출 전에 세션에 사용하도록 설정된 공급자와 세션에 사용하도록 설정된 모든 이후 공급자에 대해 소급 적용됩니다. 이제 운영 체제에서 허용하는 현재 구성된 최대 시스템 로거 수를 쿼리할 수도 있습니다. 자세한 내용은 TRACE_INFO_CLASS 열거형의 TraceProviderBinaryTracking 및 TraceMaxLoggersQuery 값과 추가 이벤트 추적 데이터 검색을 참조하세요.
이제 ETW는 이벤트 이름에 따라 이벤트를 필터링할 수 있습니다. 스택을 캡처할 이벤트를 확인할 수도 있습니다. 자세한 내용은 EVENT_FILTER_DESCRIPTOR 구조체의 EVENT_FILTER_TYPE_EVENT_NAME, EVENT_FILTER_TYPE_STACKWALK_NAME 및 EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW 값뿐만 아니라 연결된 EVENT_FILTER_EVENT_NAME 및 EVENT_FILTER_LEVEL_KW 구조를 참조하세요.
Windows 10
TraceLogging 은 ETW를 기반으로 하며 네이티브 , .NET 및 WinRT 개발자를 위한 코드를 계측하는 간소화된 방법을 제공합니다. TraceLogging을 사용하면 이벤트와 구조화된 데이터를 포함하고, 이벤트를 상호 연결하며, 별도의 계측 매니페스트 XML 파일이 필요하지 않습니다.
공급자 특성은 개별 공급자 등록에 더 많은 데이터를 연결하는 방법으로 추가되었습니다. 매니페스트 기반 또는 TraceLogging 공급자에 사용할 수 있습니다. 여기에는 현재 개별 공급자 등록에 공급자 이름 및/또는 공급자 그룹을 추가하는 지원이 포함됩니다. 공급자 그룹은 속한 그룹에 의해 여러 ETW 공급자를 집계하여 제어할 수 있는 새로운 기능입니다.
주기적 캡처 상태는 캡처 상태 알림을 공급자에게 정기적으로 보낼 수 있도록 하는 방법입니다. 이 기능을 사용하도록 설정하면 알림은 이전에 현재 세션에 사용하도록 설정된 공급자 등록으로만 전송됩니다. 각 공급자는 알림에 대한 자체 응답(있는 경우)을 정의할 수 있습니다. 구현 세부 정보는 TRACE_PERIODIC_CAPTURE_STATE_INFO 참조하세요.
Windows 8.1 및 Windows Server 2012 R2
Windows 8.1 및 Windows Server 2012 R2의 이벤트 추적에 다음 기능이 추가되었습니다.
EnableTraceEx2 함수에서 사용하는 이벤트 페이로드, scope 및 스택 워크 필터와 로거 세션의 특정 조건을 필터링하는 ENABLE_TRACE_PARAMETERS 및 EVENT_FILTER_DESCRIPTOR 구조체 사용을 지원하는 함수입니다. 자세한 내용은 다음을 참조하세요.
- TdhAggregatePayloadFilters
- TdhCleanupPayloadEventFilterDescriptor
- TdhCreatePayloadFilter
- TdhDeletePayloadFilter
또한 EnableTraceEx2 함수 및 이러한 기능에 사용되는 ENABLE_TRACE_PARAMETERS 및 EVENT_FILTER_DESCRIPTOR 구조에 대해 광범위하게 수정된 설명서를 참조하세요.
새 TdhCreatePayloadFilter 함수에서 사용하는 추적 세션에서 단일 필드를 필터링하는 방법과 이벤트 ID 및 스택 워크 필터에서 사용하는 새 구조를 설명하는 이벤트 페이로드 필터 조건자를 정의하는 구조체입니다. 자세한 내용은 다음을 참조하세요.
공급자 매니페스트에 있는 이벤트에 대한 정보를 검색하는 함수입니다. 자세한 내용은 다음을 참조하세요.
새 TdhEnumerateManifestProviderEvents 함수에서 사용하는 공급자 매니페스트의 이벤트 배열을 정의하는 구조체입니다. 자세한 내용은 다음을 참조하세요.
Windows 8 및 Windows Server 2012
Windows 8 및 Windows Server 2012 이벤트 추적에 다음 기능이 추가되었습니다.
등록 개체에 대한 작업을 수행하고, 이벤트 페이로드 구문 분석을 제공하고, 추적 공급자 검색을 제공하고, 이벤트 추적 세션 설정을 쿼리하고, 다시 로그된 추적 파일을 처리하는 함수입니다. 자세한 내용은 다음을 참조하세요.
- EventSetInformation
- TdhCloseDecodingHandle
- TdhGetDecodingParameter
- TdhGetWppProperty
- TdhGetWppMessage
- TdhLoadManifestFromBinary
- TdhOpenDecodingHandle
- TdhSetDecodingParameter
- TraceQueryInformation
추적 프로세스 및 이벤트가 기록될 때 재로거에 정보를 제공하는 인터페이스로, 특정 이벤트에 대한 데이터에 액세스하고 ETL(이벤트 추적 로그) 파일을 조작할 수 있는 재로거 기능에 액세스합니다. 자세한 내용은 다음을 참조하세요.
새 함수 및 인터페이스에서 사용하는 추가 열거형입니다. 자세한 내용은 다음을 참조하세요.
Windows 7 및 Windows Server 2008 R2
이 릴리스에는 다음과 같은 기능이 추가되었습니다.
- 공급자가 매니페스트에서 필터를 정의하는 기능입니다. Windows Vista에서 컨트롤러는 필터 데이터를 공급자에게 전달할 수 있습니다. 그러나 필터 데이터의 레이아웃이 매니페스트에 정의되지 않았으므로 공급자는 다른 방법을 사용하여 컨트롤러에 필터 정의를 제공해야 합니다. 이 릴리스를 사용하면 공급자가 매니페스트에서 필터 정의를 정의할 수 있습니다(ProviderType 복합 형식의 필터 특성 참조). 그런 다음 컨트롤러는 TdhEnumerateProviderFilters 함수를 사용하여 필터 정의를 확인할 수 있습니다. 필터를 사용하는 공급자는 EventWriteEx 함수를 사용하여 이벤트를 작성해야 합니다.
- 단일 버퍼를 사용하여 여러 프로세서에서 생성된 이벤트를 수집하는 기능입니다. 단일 버퍼를 사용하면 다중 프로세서 컴퓨터에서 이벤트가 순서대로 표시되지 않습니다. 자세한 내용은 EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 로깅 모드를 참조하세요. 기본적으로 ETW는 프로세서별 버퍼를 사용합니다.
- 이벤트에 대한 스택 추적을 캡처하는 기능입니다. 커널 이벤트에 스택 추적을 사용하도록 설정하려면 TraceSetInformation 함수를 참조하세요. 사용자 이벤트에 스택 추적을 사용하도록 설정하려면 ENABLE_TRACE_PARAMETERSEnableProperty 멤버에 대한 EVENT_ENABLE_PROPERTY_STACK_TRACE 플래그를 참조하세요.
- EVENT_TRACE_PRIVATE_LOGGER_MODE 로깅 모드를 사용하여 EVENT_TRACE_BUFFERING_MODE 또는 EVENT_TRACE_FILE_MODE_NEWFILE 로깅 모드를 지정하는 기능입니다(로깅 모드 상수 참조).
- 공급자를 동기적으로 사용하도록 설정하는 기능입니다. 기본적으로 공급자는 비동기적으로 사용하도록 설정됩니다. 공급자를 동기적으로 사용하도록 설정하려면 EnableTraceEx2의 시간 제한 매개 변수를 설정합니다.
- 컨트롤러가 공급자가 상태를 기록하도록 요청할 수 있는 기능입니다. 자세한 내용은 EnableTraceEx2의 ControlCode 매개 변수에 대한 EVENT_CONTROL_CODE_CAPTURE_STATE 플래그를 참조하세요.
- 소비자가 TdhFormatProperty 함수를 사용하여 이벤트 데이터의 형식을 지정할 수 있는 기능입니다.
- 공급자를 포함하지 않는 컴퓨터에서 매니페스트된 이벤트를 디코딩하는 기능입니다. 자세한 내용은 TdhLoadManifest 함수를 참조하세요.
이 릴리스에서 추가된 함수는 다음과 같습니다.
- EnableTraceEx2
- EventWriteEx
- TdhEnumerateProviderFilters
- TdhFormatProperty
- TdhLoadManifest
- TdhUnloadManifest
- TraceSetInformation
이 릴리스에서 추가된 구조는 다음과 같습니다.
- CLASSIC_EVENT_ID
- ENABLE_TRACE_PARAMETERS
- EVENT_EXTENDED_ITEM_STACK_TRACE32
- EVENT_EXTENDED_ITEM_STACK_TRACE64
- EVENT_FILTER_HEADER
- PROVIDER_FILTER_INFO
이 릴리스에는 다음 열거형이 추가되었습니다.
이 릴리스에서 추가된 MOF 클래스는 다음과 같습니다.