Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie Network Monitor (NetMon.exe) to zarchiwizowana aplikacja oparta na systemie Windows, której można użyć do wyświetlania śladów ze składników WPD. Narzędzie Network Monitor zastąpiłoWpdMon.exe.
Instalowanie i konfigurowanie NetMon.exe
Aby zainstalować i skonfigurować narzędzie Network Monitor, wykonaj następujące kroki:
Pobierz i zainstaluj NetMon.exe.
Pobierz i zainstaluj zestaw sterowników systemu Windows (WDK).
Zainstaluj analizatory WPD na komputerze deweloperskim, uruchamiając instancję Powershell.exe z uprawnieniami administratora i uruchamiając następującą sekwencję poleceń.
PowerShell -ExecutionPolicy ZdalnyPodpisany
cd C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\usb..\NplAutoProfile.ps1
cd ..\wpd
..\NplAutoProfile.ps1
Analizatory WPD są zawarte w zestawie sterowników systemu Windows (WDK).
Skonfiguruj opcje NetMon.exe przy użyciu okna dialogowego Narzędzia/opcje:
- Na karcie Ogólne wybierz pole Użyj czcionki o stałej szerokości w polu Podsumowanie ramki .
- Na karcie Reguły kolorów wybierz pozycję Otwórz , a następnie wybierz pozycję
C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Wybierz pozycję Otwórz, a następnie przycisk OK.
Po wykonaniu tych czynności, NetMon.exe jest gotowy do analizy plików śledzenia WPD. Postępuj zgodnie z instrukcjami w sekcji Zbieranie śladów .
Zbieranie śladów
Aby wygenerować ślady, utwórz skrypt polecenia. Skopiuj następujący kod do pliku tekstowego i zapisz go przy użyciu rozszerzenia nazwy pliku .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
Po utworzeniu pliku polecenia uruchom go z poziomu wiersza polecenia trybu administratora.
Jeśli użyto zawartości przykładowego pliku polecenia, ślady są przechowywane w pliku wpd_trace.etl.
Wyświetlanie śladów
Aby wyświetlić ślady, uruchom NetMon.exe, wybierz menu Plik/Otwórz/Przechwyć i otwórz zebrany plik wpd_trace.etl. Po otwarciu pliku śledzenia NetMon.exe wyświetla ślady w różnych warstwach:
- WPDAPI — wyświetla informacje z poziomu interfejsu API WPD za pomocą poleceń i odpowiedzi WPD
- WPDMTP — wyświetla informacje z poziomu protokołu MTP (Media Transfer Protocol) za pomocą poleceń i odpowiedzi MTP
- Transport (WPDMTPUS lub WPDMTPIP lub WPDMTPBT) — pokazuje pakiety na poziomie transportu
Na poniższej ilustracji przedstawiono żądanie WPDAPI na poziomie interfejsu API. Żądanie przechodzi przez WPDMTP w postaci żądań MTP, które docierają do transportu, a następnie są przekazywane dalej w górę.
- Rejestrowanie na poziomie transportu nie rejestruje rzeczywistych danych na etapie przesyłania danych. Sprawdź komunikat odpowiedzi WPDMTP dla zestawów danych, które zostały wysłane lub odebrane podczas poleceń, takich jak GetDeviceInfo lub SendObjectPropList.
- W przypadku wybrania wiersza odpowiedzi WPDMTP w oknie Podsumowanie ramki odpowiedni element zostanie rozwinięty w oknie Szczegóły ramki .
- Wybierz ikony "+" w oknie Szczegóły ramki, aby je dalej rozwinąć i zbadać. Jeśli operacja MTP ma dane okresowe, zestaw danych odebrany z urządzenia jest dostępny w polu DataSetOfDataPhase elementu odpowiedzi WPDMTP.
- Możesz wybrać opcję rozwinięcia elementów i zobaczyć, że w oknie szczegóły ramki wyświetlane są przyjazne komunikaty WPD/MTP. Podczas pisania analizatorów WPD konwencja jest taka, że można wyświetlić podsumowanie szczegółów na poziomie nagłówka. Na przykład w wywołaniu GetServiceCapabilities pole DataSetOfDataPhase pokazuje obok niego liczbę formatów w tym zestawie danych.
- Aby zwiększyć przejrzystość, możesz usunąć kolumny Źródło i Miejsce docelowe w oknie Podsumowanie ramki
- Po wybraniu pola w oknie Szczegóły ramki odpowiednia wartość jest wyróżniona w oknie Szczegóły szesnastkowe.
Filtrowanie za pomocą NetMon.exe
Narzędzie Network Monitor udostępnia kilka funkcji filtrowania.
Aby wyświetlić tylko ślady MTP, wprowadź
!wpdmtpw oknie Filtr wyświetlania i wybierz pozycję Zastosuj.Aby odfiltrować przypadki, w których sterownik zwrócił błąd:
- Wprowadź wpderror != 0 w oknie Filtr wyświetlania i wybierz pozycję Zastosuj.
Możesz filtrować wszystkie wywołania metody dla danego scenariusza. Na przykład następujący filtr pobiera wszystkie wywołania metody GetServiceProperties:
WPDMTP. CorrespondingCommand.MTPOpcode == 0x9304
Podobnie, następujący filtr zwracałby takie same wywołania metod:
WPDMTP.CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES