Condividi tramite


Uso dello strumento Monitoraggio di rete

Lo strumento Monitoraggio di rete (NetMon.exe) è un'applicazione basata su Windows archiviata che è possibile usare per visualizzare le tracce dai componenti WPD. A partire da Windows 8, lo strumento ha sostituito WpdMon.exe.

Installazione e configurazione di NetMon.exe

Per installare e configurare lo strumento Monitoraggio di rete, completare la procedura seguente.

  1. Scaricare e installare NetMon.exe.

  2. Scaricare e installare Windows Driver Kit.

  3. Installare i parser WPD nel computer di sviluppo avviando un'istanza di Powershell.exe con autorizzazioni di amministratore ed eseguendo la sequenza di comandi seguente.

    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 Nota I parser WPD sono inclusi in Windows Driver Kit.
  4. Configurare le opzioni di NetMon.exe usando la finestra di dialogo Strumenti/Opzioni:

    1. Nella scheda Generale selezionare la casella Usa carattere a larghezza fissa nella casella Riepilogo cornice.
    2. Nella scheda Regole colore selezionare Apri e quindi selezionare C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Selezionare Apri, quindi OK.

Dopo aver completato questi passaggi, NetMon.exe è pronto per esaminare i file di traccia WPD. Per iniziare a raccogliere tracce, seguire le istruzioni riportate nella sezione successiva Raccolta di tracce.

Raccolta di tracce

Per generare tracce, è necessario creare uno script di comando. Copiare il codice seguente in un file di testo e salvarlo con l'estensione .cmd nome file.

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

Dopo aver creato il file di comando, eseguirlo nel computer Windows 8 da una sessione di comando con privilegi elevati.

Se è stato usato il contenuto del file di comando di esempio, le tracce verranno archiviate nel file wpd_trace.etl.

Visualizzazione delle tracce

Per visualizzare le tracce, avviare NetMon.exe, selezionare il menu File/Apri/Acquisizione e aprire il file wpd_trace.etl raccolto in precedenza. Quando si apre un file di traccia, si noterà che NetMon.exe visualizza le tracce a vari livelli:

  • WPDAPI: visualizza informazioni dal livello di API WPD con comandi e risposte WPD
  • WPDMTP: visualizza informazioni dal livello MTP con comandi e risposte MTP
  • Trasporto (WPDMTPUS o WPDMTPIP o WPDMTPBT) - Mostra pacchetti a livello di trasporto

L'immagine seguente mostra una richiesta WPDAPI a livello di API. La richiesta passa attraverso WPDMTP sotto forma di richieste MTP che raggiungono un trasporto e poi si spostano verso l'alto.

Screenshot che mostra la finestra

  • La registrazione a livello di trasporto non registra i dati effettivi durante la fase di dati. Esaminare il messaggio di risposta WPDMTP per i set di dati inviati o ricevuti durante i comandi, ad esempio GetDeviceInfo o SendObjectPropList.
  • Se si seleziona una riga di risposta WPDMTP nella finestra Riepilogo frame, l'elemento corrispondente viene espanso nella finestra Dettagli cornice.
  • Selezionare "+" nella finestra Dettagli cornice per espandere ulteriormente ed esplorare. Se un'operazione MTP ha una scala dati, il set di dati ricevuto dal dispositivo è disponibile nel campo DataSetOfDataPhase di un elemento di risposta WPDMTP.

visualizzazione di tracce.

  • È possibile selezionare per espandere gli elementi e vedere che nella finestra Dettagli cornice vengono visualizzati messaggi descrittivi WPD/MTP. La convenzione seguita durante la scrittura dei parser WPD è che sarà possibile visualizzare il riepilogo dei dettagli a livello di intestazione. Ad esempio, in una chiamata GetServiceCapabilities, il campo DataSetOfDataPhase viene visualizzato accanto a esso, il numero di formati nel set di dati.
  • È possibile rimuovere le colonne Origine e Destinazione nella finestra Riepilogo frame per migliorare la chiarezza
  • Quando si seleziona un campo nella finestra Dettagli cornice, il valore corrispondente viene evidenziato nella finestra Dettagli esadecimale.

Applicazione di filtri con NetMon.exe

Lo strumento Monitoraggio di rete offre diverse funzionalità di filtro.

  • Per visualizzare solo le tracce MTP, immettere !wpdmtp nella finestra Visualizza filtro e selezionare Applica.

  • Per filtrare i casi in cui il driver ha restituito un errore:

    • Immettere wpderror != 0 nella finestra Visualizza filtro e selezionare Applica.
  • È possibile filtrare per tutte le chiamate al metodo per uno scenario specifico. Ad esempio, il filtro seguente recupera tutte le chiamate a GetServiceProperties:

    WPDMTP. CorrespondingCommand.MTPOpcode == 0x9304

  • Analogamente, il filtro seguente recupererebbe le stesse chiamate al metodo:

    WPDMTP. CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES