Använda verktyget Nätverksövervakare

Verktyget Network Monitor (NetMon.exe) är ett arkiverat Windows-baserat program som du kan använda för att visa spårningar från WPD-komponenter. Verktyget Network Monitor ersatte WpdMon.exe.

Installera och konfigurera NetMon.exe

Utför följande steg för att installera och konfigurera verktyget Network Monitor:

  1. Ladda ned och installera NetMon.exe.

  2. Ladda ned och installera Windows Driver Kit (WDK).

  3. Installera WPD-parsarna på utvecklingsdatorn genom att starta en instans av Powershell.exe med Administratör behörigheter och köra följande sekvens med kommandon.

    1. PowerShell -ExecutionPolicy Fjärrsignerat

    2. cd C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\usb

    3. ..\NplAutoProfile.ps1

    4. cd ..\wpd

    5. ..\NplAutoProfile.ps1

      WPD-parsarna ingår i Windows Driver Kit (WDK).

  4. Konfigurera de NetMon.exe alternativen med hjälp av dialogrutan Verktyg/alternativ:

    1. På fliken Allmänt väljer du rutan Använd teckensnitt med fast bredd i ramsammanfattning.
    2. På fliken Färgregler väljer du Öppna och väljer sedan C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Välj Öppnaföljt av OK.

När du har slutfört de här stegen är NetMon.exe redo att undersöka WPD-spårningsfiler. Följ anvisningarna i avsnittet Samla in spårningar .

Samla in spårningar

Skapa ett kommandoskript för att generera spårningar. Kopiera följande till en textfil och spara den med filnamnstillägget .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

När du har skapat kommandofilen kör du den från en kommandotolk i administratörsläge.

Om du använde innehållet i exempelkommandofilen lagras dina spårningar i filen wpd_trace.etl.

Visa spårningar

Om du vill visa dina spårningar startar duNetMon.exe, väljer menyn Arkiv/Öppna/Samla in och öppnar den insamlade filen wpd_trace.etl. När du öppnar en spårningsfil visar NetMon.exe spårningarna i olika lager:

  • WPDAPI – Visar information från WPD API-nivå med WPD-kommandon och svar
  • WPDMTP – Visar information från MTP-nivå (Media Transfer Protocol) med MTP-kommandon och svar
  • Transport (WPDMTPUS eller WPDMTPIP eller WPDMTPBT) – Visar paket på transportnivå

Följande bild visar en WPDAPI-begäran på API-nivå. Begäran skickas via WPDMTP i form av MTP-begäranden som når en transport och sedan bubblar upp.

Skärmbild som visar fönstret 'Ramsammanfattning' med utrop för olika spårningslager.

  • Loggning på transportnivå loggar inte faktiska data under datafasen. Granska WPDMTP-svarsmeddelandet för de datauppsättningar som skickades eller togs emot under kommandon som GetDeviceInfo eller SendObjectPropList.
  • Om du väljer en WPDMTP-svarsrad i fönstret Ramsammanfattning expanderas motsvarande objekt i fönstret Raminformation.
  • Välj "+"-objekten i fönstret Frame Details för att expandera ytterligare och utforska. Om en MTP-åtgärd har en datafas är datauppsättningen som tas emot från enheten tillgänglig under fältet DataSetOfDataPhase i ett WPDMTP-svarsobjekt.

Skärmbild som visar fönstret Ramdetaljer vid visning av spår.

  • Du kan välja att expandera objekten och se att fönstret Raminformation visar WPD/MTP-egna meddelanden. Konventionen som följs när du skriver WPD-parsarna är att du kan se en sammanfattning av detaljerna på huvudnivå. I ett GetServiceCapabilities-anrop visar till exempel fältet DataSetOfDataPhase bredvid det, antalet format i datauppsättningen.
  • Du kan ta bort kolumnerna Source och Destination i fönstret Frame Summary för att förbättra tydligheten
  • När du väljer ett fält i fönstret Raminformation markeras motsvarande värde i fönstret Hex Details.

Filtrering med NetMon.exe

Verktyget Nätverksövervakare innehåller flera filtreringsfunktioner.

  • Om du bara vill visa MTP-spårningarna anger du !wpdmtp i fönstret Visningsfilter och väljer Använd.

  • Så här filtrerar du efter fall där drivrutinen returnerade ett fel:

    • Ange wpderror != 0 i fönstret Visningsfilter och välj Använd.
  • Du kan filtrera efter alla metodanrop för ett visst scenario. Följande filter hämtar till exempel alla anrop till GetServiceProperties:

    WPDMTP.CorrespondingCommand.MTPOpcode == 0x9304

  • På samma sätt hämtar följande filter samma metodanrop:

    WPDMTP.CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES