Freigeben über


Verwenden des Tools "Netzwerkmonitor"

Das Netzwerküberwachungswerkzeug (NetMon.exe) ist eine archivierte Windows-basierte Anwendung, mit der Sie Protokolle von WPD-Komponenten anzeigen können. Das Netzwerkmonitor-Tool ersetzt WpdMon.exe.

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.exeherunter, und installieren Sie sie.

  2. Laden Sie das Windows Driver Kit (WDK) 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

      Die WPD-Parser sind im Windows Driver Kit (WDK) enthalten.

  4. Konfigurieren Sie die NetMon.exe Optionen mithilfe des Dialogfelds "Extras/Optionen":

    1. Wählen Sie auf der Registerkarte Allgemein das Kästchen Schriftart mit fester Breite in Rahmenzusammenfassung verwenden 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, istNetMon.exe bereit, WPD-Ablaufverfolgungsdateien zu untersuchen. Folgen Sie den Anweisungen im Abschnitt "Ablaufverfolgungen sammeln ".

Sammeln von Spuren

Um Spuren zu generieren, erstellen Sie ein Befehlsskript. 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 über eine Eingabeaufforderung für den Administratormodus aus.

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

Ablaufverfolgungen anzeigen

Um Ihre Ablaufverfolgungen anzuzeigen, starten Sie NetMon.exe, wählen Sie das Menü "Datei/Öffnen/Erfassen" aus, und öffnen Sie die gesammelte wpd_trace.etl-Datei. Wenn Sie eine Protokolldatei öffnen, zeigt NetMon.exe die Protokolle auf verschiedenen Ebenen an.

  • WPDAPI – Zeigt Informationen auf WPD-API-Ebene mit WPD-Befehlen und Antworten an.
  • WPDMTP – Zeigt Informationen von der MTP-Ebene (Media Transfer Protocol) 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 läuft in Form von MTP-Anforderungen durch WPDMTP, erreicht einen Transport und steigt dann auf.

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 „+“ Symbole aus, um die Ansicht 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.

Screenshot des Fensters

  • 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 befolgt wird, besteht darin, dass Sie eine Zusammenfassung der Details auf der Kopfzeilenebene sehen 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 Anzeigefilter-Fenster 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