SystemTraceProvider 세션 구성 및 시작
SystemTraceProvider는 Windows 7, Windows Server 2008 R2 이상에서 지원되는 미리 정의된 커널 이벤트 집합이 있는 커널 공급자입니다. Windows 7 및 Windows Server 2008 R2에서 SystemTraceProvider는 NT 커널 로거 세션에만 사용할 수 있습니다.
Windows 8, Windows Server 2012 이상에서는 최대 8개의 로거 세션에 대해 SystemTraceProvider를 멀티플렉싱할 수 있습니다. 로거 세션에 대한 처음 두 슬롯은 NT 커널 로거 및 순환 커널 컨텍스트 로거 에 대해 예약됩니다.
NT 커널 로거 세션을 추적 공급자로 사용하는 방법에 대한 자세한 내용은 NT 커널 로거 세션 구성 및 시작을 참조하세요.
Windows 10 SDK 빌드 20348 이상에서는 별도의 시스템 공급자를 통해 SystemTraceProvider를 구성할 수 있으며, Windows 이벤트 공급자용 표준 이벤트 추적과 같은 EnableTraceEx2로 제어할 수 있습니다. 시스템 공급자, 키워드 및 해당 레거시 플래그 및 그룹의 전체 목록은 시스템 공급자를 참조하세요.
SystemTraceProvider 세션 사용
SystemTraceProvider가 NT 커널 로거 이외의 세션을 시작할 수 있도록 하려면 다음 명령을 실행합니다.
tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH
SystemTraceProvider가 NT 커널 로거 이외의 세션을 시작하도록 프로그래밍 방식으로 사용하도록 설정하려면 다음 단계를 사용합니다.
프라이빗 로거 이름을 정의합니다.
#define PRIVATE_LOGGER_NAME L"일부 프라이빗 추적 세션"
컨트롤러에서 EVENT_TRACE_PROPERTIES 구조체의 다음 멤버를 설정합니다.
LogFileMode를 EVENT_TRACE_SYSTEM_LOGGER_MODE 설정합니다.
KERNEL_LOGGER_NAME 대신 LoggerName을 프라이빗 로거로 설정합니다.
EVENT_TRACE_PROPERTIES 구조체의 Wnode.Guid 멤버가 SystemTraceControlGuid로 설정되지 않았는지 확인합니다. 이 멤버에 새 GUID 를 할당해야 합니다.
소비자에서 EVENT_TRACE_LOGFILE 구조체의 LoggerName 멤버를 이 프라이빗 로거로 설정합니다.
참고
비관리자 또는 비TCB 프로세스가 타사 애플리케이션을 대신하여 SystemTraceProvider를 사용하여 프로파일링 추적 세션을 시작할 수 있도록 하려면 사용자 프로필 권한을 부여한 다음 이 사용자를 세션 GUID (로거 세션용으로 만든) 및 시스템 추적 공급자 GUID 에 추가하여 시스템 추적 공급자를 사용하도록 설정해야 합니다. 자세한 내용은 EventAccessControl 함수를 참조하세요.
관련 항목