네트워크 모니터 도구(NetMon.exe)는 WPD 구성 요소에서 추적을 보는 데 사용할 수 있는 보관된 Windows 기반 애플리케이션입니다. 네트워크 모니터 도구로 WpdMon.exe이 대체되었습니다.
NetMon.exe 설치 및 구성
네트워크 모니터 도구를 설치하고 구성하려면 다음 단계를 완료합니다.
NetMon.exe다운로드하여 설치합니다.
WDK(Windows 드라이버 키트)를 다운로드하여 설치합니다.
관리자 권한으로 Powershell.exe 인스턴스를 시작하고 다음 명령 시퀀스를 실행하여 개발 머신에 WPD 파서를 설치합니다.
PowerShell -ExecutionPolicy RemoteSigned
cd C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\usb
..\NplAutoProfile.ps1
시디.. \wpd
..\NplAutoProfile.ps1
WPD 파서는 WDK(Windows 드라이버 키트)에 포함됩니다.
도구/옵션 대화 상자를 사용하여 NetMon.exe 옵션을 구성합니다.
- [일반] 탭의 [프레임 요약] 상자에서 고정 너비 글꼴 사용을 선택합니다.
-
색 규칙 탭에서 열기를 선택한 다음, 을 선택합니다
C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr
. 열기를 선택한 다음 확인을 선택합니다.
이러한 단계를 완료하면 NetMon.exe WPD 추적 파일을 검사할 준비가 된 것입니다. 추적 수집 섹션의 지침을 따릅니다.
흔적 수집
추적을 생성하려면 명령 스크립트를 만듭니다. 다음을 텍스트 파일에 복사하고 .cmd 파일 이름 확장명을 사용하여 저장합니다.
echo off
@REM ---------------------------------------------------------------------------------------
@REM UNCOMMENT THE LOGMAN COMMANDS FOR THE FOLLOWING PROVIDERS AS REQUIRED
@REM Microsoft-Windows-WPD-API To log API traffic
@REM Microsoft-Windows-WPD-MTPClassDriver To log MTP command, response and datasets
@REM Microsoft-Windows-WPD-MTPUS To log USB traffic at WpdMtpUS layer
@REM Microsoft-Windows-WPD-MTPIP To log IP traffic at WpdMtpIP layer
@REM Microsoft-Windows-WPD-MTPBT To log BT traffic at WpdMtpBt layer
@REM Microsoft-Windows-USB-USBPORT To log USB core layer traffic
@REM Microsoft-Windows-USB-USBHUB To log USB core layer traffic
@REM ---------------------------------------------------------------------------------------
@REM Start Logging
logman start -ets WPD -p Microsoft-Windows-WPD-API -bs 100 -nb 128 640 -o wpd_trace.etl
logman update -ets WPD -p Microsoft-Windows-WPD-MTPClassDriver -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-WPD-MTPUS -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-WPD-MTPIP -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-WPD-MTPBT -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-USB-USBPORT -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-USB-USBHUB -bs 100 -nb 128 640
logman update -ets WPD -p Microsoft-Windows-Kernel-IoTrace 0 2
echo.
echo Please run your scenario now and
pause
@REM Stop logging
logman stop -ets WPD
명령 파일을 만든 후 관리자 모드 명령 프롬프트에서 실행합니다.
샘플 명령 파일의 내용을 사용한 경우 추적은 wpd_trace.etl 파일에 저장됩니다.
추적 기록 보기
추적을 보려면 NetMon.exe시작하고 파일/열기/캡처 메뉴를 선택하고 수집된 wpd_trace.etl 파일을 엽니다. 추적 파일을 열면 NetMon.exe 다양한 계층에 추적을 표시합니다.
- WPDAPI – WPD 명령 및 응답을 사용하여 WPD API 수준의 정보를 표시합니다.
- WPDMTP – MTP 명령 및 응답을 사용하여 MTP(미디어 전송 프로토콜) 수준의 정보를 표시합니다.
- 전송(WPDMTPUS 또는 WPDMTPIP 또는 WPDMTPBT) – 전송 수준 패킷 표시
다음 이미지는 API 수준에서 WPDAPI 요청을 보여줍니다. 요청은 전송에 도달한 다음 버블업되는 MTP 요청의 형태로 WPDMTP를 통과합니다.
- 전송 수준 로깅은 데이터 단계 동안 실제 데이터를 기록하지 않습니다. GetDeviceInfo 또는 SendObjectPropList와 같은 명령 중에 보내거나 받은 데이터 세트에 대한 WPDMTP 응답 메시지를 검사합니다.
- 프레임 요약 창에서 WPDMTP 응답 줄을 선택하면 해당 항목이 프레임 세부 정보 창에서 확장됩니다.
- 프레임 세부 정보 창에서 "+"를 선택하여 추가로 확장하고 탐색합니다. MTP 작업에 데이터 단계가 있는 경우 디바이스에서 받은 데이터 세트는 WPDMTP 응답 항목의 DataSetOfDataPhase 필드에서 사용할 수 있습니다.
- 항목을 확장하고 프레임 세부 정보 창에 WPD/MTP 친숙한 메시지가 표시되는지 확인할 수 있습니다. WPD 파서를 작성할 때 따르는 관례는 헤더 수준에서 세부 정보 요약을 볼 수 있도록 한다는 것입니다. 예를 들어 GetServiceCapabilities 호출에서 DataSetOfDataPhase 필드는 그 옆에 해당 데이터 세트의 형식 수를 표시합니다.
- 프레임 요약 창에서 원본 및 대상 열을 제거하여 명확성을 높일 수 있습니다.
- 프레임 세부 정보 창에서 필드를 선택하면 해당 값이 16진수 세부 정보 창에 강조 표시됩니다.
NetMon.exe 사용하여 필터링
네트워크 모니터 도구는 몇 가지 필터링 기능을 제공합니다.
MTP 추적만 표시하려면 표시 필터 창에 입력
!wpdmtp
하고 적용을 선택합니다.드라이버에서 오류를 반환한 경우를 필터링하려면 다음을 수행합니다.
- 표시 필터 창에 wpderror != 0을 입력하고 적용을 선택합니다.
지정된 시나리오에 대한 모든 메서드 호출을 필터링할 수 있습니다. 예를 들어 다음 필터는 GetServiceProperties에 대한 모든 호출을 검색합니다.
WPDMTP. CorrespondingCommand.MTPOpcode == 0x9304
마찬가지로 다음 필터는 동일한 메서드 호출을 검색합니다.
WPDMTP.CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES