Compartir a través de


Uso de la herramienta Network Monitor

La herramienta Monitor de red (NetMon.exe) es una aplicación archivada basada en Windows que puede usar para ver los seguimientos de los componentes de WPD. A partir de Windows 8, la herramienta reemplazó WpdMon.exe.

Instalación y configuración de NetMon.exe

Para instalar y configurar la herramienta Network Monitor, complete los pasos siguientes.

  1. Descargue e instale NetMon.exe.

  2. Descargue e instale el Kit de controladores de Windows.

  3. Instale los analizadores de WPD en el equipo de desarrollo iniciando una instancia de Powershell.exe con permisos de administrador y ejecutando la siguiente secuencia de comandos.

    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 Los analizadores de WPD se incluyen en el Kit de controladores de Windows.
  4. Configure las opciones de NetMon.exe mediante el cuadro de diálogo Herramientas/Opciones:

    1. En la pestaña General , seleccione el cuadro Usar fuente de ancho fijo en Resumen de fotogramas.
    2. En la pestaña Reglas de color, seleccione Abrir y, a continuación, seleccione C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\wpd\wpd.nmcr. Seleccione Abrir, seguido de Aceptar.

Después de completar estos pasos, NetMon.exe está listo para examinar los archivos de seguimiento de WPD. Para empezar a recopilar seguimientos, siga las instrucciones de la sección siguiente Recopilación de seguimientos.

Recopilación de seguimientos

Para generar seguimientos, deberá crear un script de comandos. Copie lo siguiente en un archivo de texto y guárdelo con la extensión de nombre de archivo .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

Después de crear el archivo de comandos, ejecútelo en la máquina Windows 8 desde una sesión de comandos con privilegios elevados.

Si usó el contenido del archivo de comandos de ejemplo, los seguimientos se almacenarán en el archivo wpd_trace.etl.

Visualización de seguimientos

Para ver los seguimientos, inicie NetMon.exe, seleccione el menú Archivo/Abrir/Capturar y abra el archivo wpd_trace.etl recopilado anteriormente. Al abrir un archivo de seguimiento, verá que NetMon.exe muestra los seguimientos en varias capas:

  • WPDAPI: muestra información del nivel de API de WPD con comandos y respuestas de WPD
  • WPDMTP: muestra información del nivel MTP con comandos y respuestas de MTP
  • Transporte (WPDMTPUS o WPDMTPIP o WPDMTPBT): muestra paquetes de nivel de transporte

En la imagen siguiente se muestra una solicitud WPDAPI en el nivel de API. La solicitud viaja a través de WPDMTP en forma de solicitudes MTP que llegan a un transporte y, a continuación, se propagan.

Captura de pantalla que muestra la ventana

  • El registro de nivel de transporte no registra los datos reales durante la fase de datos. Examine el mensaje de respuesta de WPDMTP para los conjuntos de datos que se enviaron o recibieron durante comandos como GetDeviceInfo o SendObjectPropList.
  • Si selecciona una línea de respuesta WPDMTP en la ventana Resumen de fotogramas, el elemento correspondiente se expande en la ventana Detalles del marco.
  • Seleccione "+" en la ventana Detalles del marco para expandir más y explorar. Si una operación MTP tiene una fase de datos, el conjunto de datos recibido del dispositivo está disponible en el campo DataSetOfDataPhase de un elemento de respuesta WPDMTP.

ver seguimientos.

  • Puede seleccionar para expandir los elementos y ver que la ventana Detalles del marco muestra mensajes descriptivos de WPD/MTP. La convención seguida al escribir los analizadores de WPD es que podrá ver el resumen de los detalles en el nivel de encabezado. Por ejemplo, en una llamada GetServiceCapabilities, el campo DataSetOfDataPhase se muestra junto a él, el número de formatos de ese conjunto de datos.
  • Puede quitar las columnas Origen y Destino en la ventana Resumen de fotogramas para mejorar la claridad.
  • Al seleccionar un campo en la ventana Detalles del marco, el valor correspondiente se resalta en la ventana Detalles hexadecimales.

Filtrado con NetMon.exe

La herramienta Network Monitor proporciona varias funcionalidades de filtrado.

  • Para mostrar solo los seguimientos de MTP, escriba !wpdmtp en la ventana Filtro de presentación y seleccione Aplicar.

  • Para filtrar los casos en los que el controlador devolvió un error:

    • Escriba wpderror != 0 en la ventana Filtro de visualización y seleccione Aplicar.
  • Puede filtrar por todas las llamadas de método para un escenario determinado. Por ejemplo, el siguiente filtro recuperaría todas las llamadas a GetServiceProperties:

    WPDMTP. CorrespondingCommand.MTPOpcode == 0x9304

  • Del mismo modo, el siguiente filtro recuperaría las mismas llamadas de método:

    WPDMTP. CorrespondingCommand.MTPOpcode == MTP_OPCODE_GETSERVICEPROPERTIES