다음을 통해 공유


WPP 소프트웨어 추적

이 섹션에서는 Windows WPP( 소프트웨어 추적 전처리기 )를 사용하여 소프트웨어 구성 요소(추적 공급자)의 작업을 추적하는 방법을 설명합니다. 추적 공급자는 다음 중 하나일 수 있습니다.

  • 커널 모드 드라이버입니다.

  • 사용자 모드 드라이버, 애플리케이션 또는 DLL(동적 연결 라이브러리)입니다.

WPP 소프트웨어 추적은 추적 공급자의 추적 작업을 간소화하는 방법을 추가하여 WMI 이벤트 추적 을 보완하고 향상시킵니다. 추적 공급자가 실시간 이진 메시지를 기록하는 효율적인 메커니즘입니다. 로그된 메시지는 이후에 추적 공급자의 작업에서 사람이 읽을 수 있는 추적으로 변환될 수 있습니다.

WPP 소프트웨어 추적은 언제 사용해야 하나요?

WPP 소프트웨어 추적은 주로 개발 중에 코드를 디버깅하기 위한 것입니다. 개발 중 추적 외에도 구조화된 ETW 이벤트에 관심이 있는 애플리케이션에서 사용할 수 있는 이벤트를 게시하려면 다음을 사용합니다.

자세한 내용은 WPP 소프트웨어 추적 또는 ETW(Windows용 이벤트 추적) API를 사용해야 하는 경우를 참조하세요.

WPP 소프트웨어 추적을 사용하여 메시지 로깅은 Windows 이벤트 로깅 서비스를 사용하는 것과 비슷합니다. 드라이버는 로그 파일에 메시지 ID 및 서식이 지정되지 않은 이진 데이터를 기록합니다. 그 후처리기는 로그 파일의 정보를 사람이 읽을 수 있는 형식으로 변환합니다. 그러나 WPP 소프트웨어 추적은 이벤트 로깅 서비스에서 지원하는 것보다 더 유능하고 유연한 메시지 형식을 지원합니다. 예를 들어 WPP 소프트웨어 추적은 IP 주소, GUID, 시스템 ID, 타임스탬프 및 기타 유용한 데이터 형식을 기본적으로 지원합니다. 또한 사용자는 애플리케이션과 관련된 사용자 지정 데이터 형식을 추가할 수 있습니다.

WPP 소프트웨어 추적 프로세스 개요

드라이버 또는 애플리케이션에 WPP 소프트웨어 추적을 추가하는 기본 프로세스에는 다음 단계가 포함됩니다. WDF 드라이버를 만들기 위해 WDK에 제공된 Visual Studio 템플릿 중 하나를 사용하는 경우 대부분의 작업이 수행됩니다.

  • 드라이버 또는 애플리케이션을 추적 공급자로 고유하게 식별하는 컨트롤 GUID를 정의합니다. 공급자는 WPP_CONTROL_GUIDS 매크로 정의 및 Tracelog 또는 다른 추적 컨트롤러에서 사용하는 관련 컨트롤 파일에서 이 GUID를 지정합니다.

  • Windows 드라이버에 WPP 소프트웨어 추적 추가 및 WPP 소프트웨어 추적 참조에 설명된 대로 필요한 WPP 관련 C 전처리기 지시문 및 WPP 매크로 호출을 공급자의 원본 파일에 추가합니다.

  • Windows 드라이버에 WPP 소프트웨어 추적 추가의 6단계 에 설명된 대로 WPP 전처리기를 실행하고 드라이버를 빌드하도록 Visual Studio 프로젝트를 수정합니다. 더 많은 빌드 시간 옵션은 WPP 전처리기를 참조할 수 있습니다.

  • 드라이버 또는 구성 요소를 설치합니다. 추적 세션을 시작하고 추적 메시지를 기록합니다. TraceView, Tracelog, TracefmtTracepdb와 같은 소프트웨어 추적 도구를 사용하여 추적 세션을 구성, 시작 및 중지하고 추적 메시지를 표시하고 필터링합니다. 이러한 도구는 WDK(Windows 드라이버 키트)에 포함되어 있습니다.

섹션 내용

참고 ETW(Windows용 이벤트 추적) 및 WPP는 대부분의 커널 모드 및 사용자 모드 드라이버를 지원합니다. 그러나 ETW 및 WPP는 미니포트 드라이버와 같은 특정 유형의 드라이버에 사용할 수 없는 형식을 사용합니다. 특정 드라이버 형식이 지원되는지 여부를 확인하려면 WPP_INIT_TRACING 및 WPP_CLEANUP 같은 기본 WPP 매크로를 드라이버에 추가합니다. 사용되는 형식이 정의되지 않아 코드가 컴파일되지 않으면 ETW 및 WPP는 드라이버 형식을 지원할 수 없습니다.

ETW에 대한 자세한 내용은 Windows용 이벤트 추적을 참조하세요.

참고 WPP 추적 공급자는 한 번에 하나의 추적 세션에서만 사용하도록 설정할 수 있습니다. 자세한 내용은 WPP 공급자를 참조하세요.

WPP 소프트웨어 추적을 지원하는 WMI 라이브러리 지원 루틴에 대한 자세한 내용은 다음을 참조하세요.

WmiQueryTraceInformation

WmiTraceMessage

WmiTraceMessageVa