Delen via


Het hulpprogramma Network Monitor gebruiken

Het hulpprogramma Network Monitor (NetMon.exe) is een gearchiveerde Windows-toepassing die u kunt gebruiken om traceringen van WPD-onderdelen weer te geven. Het Network Monitor-hulpprogramma verving WpdMon.exe.

NetMon.exe installeren en configureren

Voer de volgende stappen uit om het hulpprogramma Network Monitor te installeren en te configureren:

  1. Download en installeer NetMon.exe.

  2. Download en installeer de Windows Driver Kit (WDK).

  3. Installeer de WPD-parsers op uw ontwikkelcomputer door een exemplaar van Powershell.exe te starten met Administrator machtigingen en de volgende reeks opdrachten uit te voeren.

    1. PowerShell -ExecutionPolicy RemoteSigned

    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

      De WPD-parsers zijn opgenomen in de Windows Driver Kit (WDK).

  4. Configureer de NetMon.exe-opties met behulp van het dialoogvenster Extra/Opties:

    1. Selecteer op het tabblad Algemeen het vakje Lettertype met vaste breedte gebruiken in de frame-samenvatting.
    2. Selecteer op het tabblad Kleurregels de optie Open en selecteer vervolgens C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Selecteer openen, gevolgd door OK.

Nadat u deze stappen hebt voltooid, is NetMon.exe klaar om WPD-traceringsbestanden te onderzoeken. Volg de instructies in de sectie Traceringen verzamelen .

Sporen verzamelen

Als u traceringen wilt genereren, maakt u een opdrachtscript. Kopieer het volgende naar een tekstbestand en sla het op met de bestandsextensie .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

Nadat u het opdrachtbestand hebt gemaakt, voert u het uit vanaf een opdrachtprompt in de administratormodus.

Als u de inhoud van het voorbeeldopdrachtbestand hebt gebruikt, worden uw traceringen opgeslagen in het bestand wpd_trace.etl.

Traceringen weergeven

Start NetMon.exe, selecteer het menu Bestand/Openen/Vastleggen en open het verzamelde wpd_trace.etl-bestand om uw traceringen te bekijken. Wanneer u een traceringsbestand opent, NetMon.exe de traceringen op verschillende lagen weergeeft:

  • WPDAPI : geeft informatie weer van WPD-API-niveau met WPD-opdrachten en -antwoorden
  • WPDMTP : geeft informatie weer van het niveau Media Transfer Protocol (MTP) met MTP-opdrachten en -antwoorden
  • Transport (WPDMTPUS of WPDMTPIP of WPDMTPBT) – Geeft pakketten op transportniveau weer

In de volgende afbeelding ziet u een WPDAPI-aanvraag op API-niveau. De aanvraag reist via WPDMTP in de vorm van MTP-verzoeken die een transport bereiken en daarna naar boven komen.

Schermopname van het venster Frameoverzicht met annotaties voor verschillende traceringslagen.

  • In de logboekregistratie op transportniveau worden de werkelijke gegevens niet vastgelegd tijdens de gegevensfase. Bekijk het WPDMTP-antwoordbericht voor de gegevenssets die zijn verzonden of ontvangen tijdens opdrachten zoals GetDeviceInfo of SendObjectPropList.
  • Als u een WPDMTP-antwoordregel selecteert in het venster Framesamenvatting, wordt het bijbehorende item uitgevouwen in het venster Framedetails.
  • Selecteer de +'s in het venster Framedetails om verder uit te vouwen en te verkennen. Als een MTP-bewerking een gegevensfase heeft, is de gegevensset die van het apparaat is ontvangen, beschikbaar onder het veld DataSetOfDataPhase van een WPDMTP-antwoorditem.

Schermopname van het venster Framedetails tijdens het weergeven van traceringen.

  • U kunt ervoor kiezen om de items uit te vouwen en te zien dat in het venster framedetails venster WPD/MTP-vriendelijke berichten worden weergegeven. De conventie die gevolgd wordt bij het schrijven van de WPD-parsers is dat je op koptekstniveau een samenvatting van de details kunt zien. In een GetServiceCapabilities-aanroep wordt bijvoorbeeld het veld DataSetOfDataPhase weergegeven, samen met het aantal formaten in die gegevensset.
  • U kunt de kolommen Bron en Doel verwijderen in het venster Framesamenvatting om de duidelijkheid te verbeteren
  • Wanneer u een veld selecteert in venster Framedetails, wordt de bijbehorende waarde gemarkeerd in het venster Hex Details.

Filteren met NetMon.exe

Het hulpprogramma Netwerkmonitor biedt verschillende filtermogelijkheden.

  • Als u alleen de MTP-traceringen wilt weergeven, voert u !wpdmtp het venster Weergavefilter in en selecteert u Toepassen.

  • Filteren op gevallen waarin het stuurprogramma een fout heeft geretourneerd:

    • Typ wpderror != 0 in het venster Weergavefilter en selecteer Toepassen.
  • U kunt filteren op alle methodeoproepen voor een bepaald scenario. Met het volgende filter worden bijvoorbeeld alle aanroepen naar GetServiceProperties opgehaald:

    WPDMTP.CorrespondingCommand.MTPOpcode == 0x9304

  • Op dezelfde manier zou het volgende filter dezelfde methode-aanroepen ophalen:

    WPDMTP.CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES