Freigeben über


Verwenden des Netzwerkmonitortools

Das Netzwerküberwachungstool (NetMon.exe) ist eine archivierte Windows-basierte Anwendung, mit der Sie Ablaufverfolgungen von WPD-Komponenten anzeigen können. Ab Windows 8 wurde das Tool WpdMon.exe ersetzt.

Installieren und Konfigurieren von NetMon.exe

Führen Sie die folgenden Schritte aus, um das Netzwerkmonitor-Tool zu installieren und zu konfigurieren.

  1. Laden Sie NetMon.exe herunter, und installieren Sie sie.

  2. Laden Sie das Windows Driver Kit herunter, und installieren Sie es.

  3. Installieren Sie die WPD-Parser auf Ihrem Entwicklungscomputer, indem Sie eine Instanz von Powershell.exe mit Administratorberechtigungen starten und die folgende Sequenz von Befehlen ausführen.

    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 Hinweis Die WPD-Parser sind im Windows Driver Kit enthalten.
  4. Konfigurieren Sie die NetMon.exe Optionen mithilfe des Dialogfelds "Extras/Optionen":

    1. Wählen Sie auf der Registerkarte "Allgemein " die Schriftart "Schriftart mit fester Breite verwenden" im Feld "Rahmenzusammenfassung " aus.
    2. Wählen Sie auf der Registerkarte "Farbregeln" die Option "Öffnen" und dann ".C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr Wählen Sie " Öffnen" gefolgt von "OK" aus .

Nachdem Sie diese Schritte ausgeführt haben, ist NetMon.exe bereit, WPD-Ablaufverfolgungsdateien zu untersuchen. Folgen Sie den Anweisungen im nächsten Abschnitt zum Sammeln von Ablaufverfolgungen, um mit dem Sammeln von Ablaufverfolgungen zu beginnen.

Sammeln von Ablaufverfolgungen

Zum Generieren von Ablaufverfolgungen müssen Sie ein Befehlsskript erstellen. Kopieren Sie Folgendes in eine Textdatei, und speichern Sie sie mit der Dateinamenerweiterung .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

Nachdem Sie die Befehlsdatei erstellt haben, führen Sie sie auf Ihrem Windows 8-Computer über eine Befehlssitzung mit erhöhten Rechten aus.

Wenn Sie den Inhalt der Beispielbefehlsdatei verwendet haben, werden Ihre Ablaufverfolgungen in der Datei wpd_trace.etl gespeichert.

Anzeigen von Ablaufverfolgungen

Um Ihre Ablaufverfolgungen anzuzeigen, starten Sie NetMon.exe, wählen Sie das Menü "Datei/Öffnen/Erfassen" aus, und öffnen Sie die oben gesammelte wpd_trace.etl-Datei. Wenn Sie eine Ablaufverfolgungsdatei öffnen, sehen Sie, dass NetMon.exe die Ablaufverfolgungen auf verschiedenen Ebenen anzeigt:

  • WPDAPI – Zeigt Informationen auf WPD-API-Ebene mit WPD-Befehlen und Antworten an.
  • WPDMTP – Zeigt Informationen auf MTP-Ebene mit MTP-Befehlen und Antworten an.
  • Transport (WPDMTPUS oder WPDMTPIP oder WPDMTPBT) – Zeigt Pakete auf Transportebene an

Die folgende Abbildung zeigt eine WPDAPI-Anforderung auf API-Ebene. Die Anforderung durchgibt WPDMTP in Form von MTP-Anforderungen, die einen Transport erreichen und dann blasen.

Screenshot des Fensters

  • Die Protokollierung auf Transportebene protokolliert nicht die tatsächlichen Daten während der Datenphase. Untersuchen Sie die WPDMTP-Antwortnachricht für die Datasets, die während Befehlen wie GetDeviceInfo oder SendObjectPropList gesendet oder empfangen wurden.
  • Wenn Sie im Fenster "Framezusammenfassung" eine WPDMTP-Antwortzeile auswählen, wird das entsprechende Element im Fenster "Framedetails" erweitert.
  • Wählen Sie im Fenster "Framedetails" die "+"s" aus, um sie weiter zu erweitern und zu erkunden. Wenn ein MTP-Vorgang über eine Datenphase verfügt, steht das vom Gerät empfangene Dataset unter dem Feld "DataSetOfDataPhase " eines WPDMTP-Antwortelements zur Verfügung.

Anzeigen von Ablaufverfolgungen.

  • Sie können auswählen, um die Elemente zu erweitern und zu sehen, dass im Fenster "Framedetails " WPD/MTP freundliche Nachrichten angezeigt werden. Die Konvention, die beim Schreiben der WPD-Parser folgt, besteht darin, dass Sie eine Zusammenfassung der Details auf Der Kopfzeilenebene anzeigen können. In einem GetServiceCapabilities-Aufruf wird beispielsweise das Feld "DataSetOfDataPhase " daneben angezeigt, die Anzahl der Formate in diesem Dataset.
  • Sie können die Spalten "Quelle " und "Ziel " im Fenster "Framezusammenfassung " entfernen, um die Klarheit zu verbessern.
  • Wenn Sie ein Feld im Fenster "Framedetails " auswählen, wird der entsprechende Wert im Fenster "Hex-Details " hervorgehoben.

Filtern mit NetMon.exe

Das Netzwerkmonitor-Tool bietet mehrere Filterfunktionen.

  • Um nur die MTP-Ablaufverfolgungen anzuzeigen, geben Sie "!wpdmtp" in das Fenster "Anzeigefilter" ein, und wählen Sie "Übernehmen" aus.

  • So filtern Sie nach Fällen, in denen der Treiber einen Fehler zurückgegeben hat:

    • Geben Sie wpderror != 0 im Fenster "Anzeigefilter" ein, und wählen Sie "Übernehmen" aus.
  • Sie können nach allen Methodenaufrufen für ein bestimmtes Szenario filtern. Beispielsweise würde der folgende Filter alle Aufrufe von GetServiceProperties abrufen:

    WPDMTP. CorrespondingCommand.MTPOpcode == 0x9304

  • Ebenso würde der folgende Filter dieselben Methodenaufrufe abrufen:

    WPDMTP. CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES