Partager via


Utilisation de l’outil Moniteur réseau

L’outil Network Monitor (NetMon.exe) est une application Windows archivée que vous pouvez utiliser pour afficher les traces à partir de composants WPD. À compter de Windows 8, l’outil a remplacé WpdMon.exe.

Installation et configuration de NetMon.exe

Pour installer et configurer l’outil Moniteur réseau, procédez comme suit.

  1. Téléchargez et installez NetMon.exe.

  2. Téléchargez et installez le Kit de pilotes Windows.

  3. Installez les analyseurs WPD sur votre ordinateur de développement en démarrant une instance de Powershell.exe avec des autorisations d’administrateur et en exécutant la séquence de commandes suivante.

    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 Remarque Les analyseurs WPD sont inclus dans le Kit de pilotes Windows.
  4. Configurez les options NetMon.exe à l’aide de la boîte de dialogue Outils/Options :

    1. Sous l’onglet Général , sélectionnez la police Utiliser la largeur fixe dans la zone Résumé du cadre.
    2. Sous l’onglet Règles de couleur, sélectionnez Ouvrir , puis sélectionnez C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Sélectionnez Ouvrir, suivi d’OK .

Une fois ces étapes terminées, NetMon.exe est prêt à examiner les fichiers de trace WPD. Pour commencer à collecter des traces, suivez les instructions de la section suivante, Collecting Traces.

Collecte de traces

Pour générer des traces, vous devez créer un script de commande. Copiez ce qui suit dans un fichier texte et enregistrez-le avec l’extension de nom de fichier .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

Après avoir créé le fichier de commandes, exécutez-le sur votre ordinateur Windows 8 à partir d’une session de commandes avec élévation de privilèges.

Si vous avez utilisé le contenu de l’exemple de fichier de commande, vos traces sont stockées dans le fichier wpd_trace.etl.

Affichage des traces

Pour afficher vos traces, lancez NetMon.exe, sélectionnez le menu Fichier/Ouvrir/Capturer, puis ouvrez le fichier wpd_trace.etl collecté ci-dessus. Lorsque vous ouvrez un fichier de trace, vous verrez que NetMon.exe affiche les traces à différentes couches :

  • WPDAPI : affiche des informations à partir du niveau de l’API WPD avec des commandes et des réponses WPD
  • WPDMTP : affiche des informations à partir du niveau MTP avec des commandes et des réponses MTP
  • Transport (WPDMTPUS ou WPDMTPIP ou WPDMTPBT) : affiche les paquets au niveau du transport

L’image suivante montre une requête WPDAPI au niveau de l’API. La requête transite par WPDMTP sous la forme de requêtes MTP qui atteignent un transport, puis se bullent.

Capture d’écran montrant la fenêtre « Résumé du cadre » avec des légendes pour différentes couches de trace.

  • La journalisation au niveau du transport ne consigne pas les données réelles pendant la phase de données. Examinez le message de réponse WPDMTP pour les jeux de données qui ont été envoyés ou reçus pendant les commandes telles que GetDeviceInfo ou SendObjectPropList.
  • Si vous sélectionnez une ligne de réponse WPDMTP dans la fenêtre Résumé du cadre, l’élément correspondant se développe dans la fenêtre Détails du cadre.
  • Sélectionnez les « + » dans la fenêtre Détails du cadre pour approfondir et explorer. Si une opération MTP a une phase de données, le jeu de données reçu de l’appareil est disponible sous le champ DataSetOfDataPhase d’un élément de réponse WPDMTP.

affichage des traces.

  • Vous pouvez sélectionner pour développer les éléments et voir que la fenêtre Détails du cadre affiche les messages conviviaux WPD/MTP. La convention suivie lors de l’écriture des analyseurs WPD est que vous serez en mesure de voir le résumé des détails au niveau de l’en-tête. Par exemple, dans un appel GetServiceCapabilities, le champ DataSetOfDataPhase s’affiche en regard de celui-ci, le nombre de formats dans ce jeu de données.
  • Vous pouvez supprimer les colonnes Source et Destination dans la fenêtre Résumé du cadre pour améliorer la clarté
  • Lorsque vous sélectionnez un champ dans la fenêtre Détails du cadre, la valeur correspondante est mise en surbrillance dans la fenêtre Détails hexadécimal.

Filtrage avec NetMon.exe

L’outil Moniteur réseau fournit plusieurs fonctionnalités de filtrage.

  • Pour afficher uniquement les traces MTP, entrez !wpdmtp dans la fenêtre Filtre d’affichage, puis sélectionnez Appliquer.

  • Pour filtrer les cas où le pilote a retourné une erreur :

    • Entrez wpderror != 0 dans la fenêtre Filtre d’affichage, puis sélectionnez Appliquer.
  • Vous pouvez filtrer pour tous les appels de méthode pour un scénario donné. Par exemple, le filtre suivant récupère tous les appels à GetServiceProperties :

    WPDMTP. CorrespondingCommand.MTPOpcode == 0x9304

  • De même, le filtre suivant récupère les mêmes appels de méthode :

    WPDMTP. CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES