Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Lo strumento Monitoraggio di rete (NetMon.exe) è un'applicazione basata su Windows archiviata che è possibile usare per visualizzare le tracce dai componenti WPD. Lo strumento Monitoraggio di rete ha sostituito WpdMon.exe.
Installazione e configurazione di NetMon.exe
Per installare e configurare lo strumento Monitoraggio di rete, completare questa procedura:
Scaricare e installare NetMon.exe.
Scaricare e installare Windows Driver Kit (WDK).
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.
PowerShell -ExecutionPolicy RemoteSigned (firma remota)
cd C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\usb..\NplAutoProfile.ps1
cd ..\wpd
..\NplAutoProfile.ps1
I parser WPD sono inclusi in Windows Driver Kit (WDK).
Configurare le opzioni diNetMon.exe usando la finestra di dialogo Strumenti/Opzioni:
- Nella scheda Generale selezionare la casella Usa carattere a larghezza fissa nella casella Riepilogo cornice .
- 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. Seguire le istruzioni nella sezione Raccolta di tracce .
Raccolta di tracce
Per generare tracce, 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 da un prompt dei comandi in modalità amministratore.
Se è stato usato il contenuto del file di comando di esempio, le tracce vengono 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. Quando si apre un file di traccia, 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 (Media Transfer Protocol) 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 il livello di trasporto e quindi si propagano.
- 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 frame.
- Selezionare i simboli "+" nella finestra Dettagli Cornice per espandere ed esplorare ulteriormente. Se un'operazione MTP ha una dataphase, il dataset ricevuto dal dispositivo è disponibile nel campo DataSetOfDataPhase di un elemento WPDMTP Response.
- È possibile scegliere di espandere gli elementi e vedere che nella finestra Dettagli cornice vengono visualizzati messaggi amichevoli WPD/MTP. La convenzione seguita durante la scrittura dei parser WPD è che è 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 dei Dettagli del frame, il valore corrispondente viene evidenziato nella finestra dei Dettagli esadecimali.
Applicazione di filtri con NetMon.exe
Lo strumento Monitoraggio di rete offre diverse funzionalità di filtro.
Per visualizzare solo le tracce MTP, immettere
!wpdmtpnella finestra Filtro di visualizzazione 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 tutte le chiamate di metodo per uno scenario dato. 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