Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La herramienta Monitor de red (NetMon.exe) es una aplicación archivada basada en Windows que puede usar para analizar los rastros de los componentes de WPD. La herramienta Monitor de red ha reemplazado WpdMon.exe.
Instalación y configuración de NetMon.exe
Para instalar y configurar la herramienta Network Monitor, complete estos pasos:
Descargue e instale NetMon.exe.
Descargue e instale el Kit de controladores de Windows (WDK).
Instale los analizadores de WPD en la máquina de desarrollo iniciando una instancia de Powershell.exe con permisos de administrador y ejecutando la siguiente secuencia de comandos.
PowerShell -ExecutionPolicy RemoteSigned
cd C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22621.0\x86\Network Monitor Parsers\usb..\NplAutoProfile.ps1
cd ..\wpd
..\NplAutoProfile.ps1
Los analizadores de WPD se incluyen en el Kit de controladores de Windows (WDK).
Configure las opciones deNetMon.exe mediante el cuadro de diálogo Herramientas/Opciones:
- En la pestaña General, seleccione la opción Usar fuente de ancho fijo en el resumen de fotogramas.
- 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. Siga las instrucciones de la sección Recopilación de registros.
Recopilación de rastros
Para generar seguimientos, cree un script de comando. Copie lo siguiente en un archivo de texto y guárdelo con la extensión 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 desde un símbolo del sistema con privilegios de administrador.
Si usó el contenido del archivo de comandos de ejemplo, los rastros se almacenan en el archivo wpd_trace.etl.
Ver seguimientos
Para ver los seguimientos, inicie NetMon.exe, seleccione el menú Archivo/Abrir/Capturar y abra el archivo wpd_trace.etl recopilado. Al abrir un archivo de seguimiento, 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 a nivel del Protocolo de Transferencia de Medios (PTM) con comandos y respuestas PTM.
- 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.
- El registro a nivel de transporte no registra los datos reales durante la fase de transferencia 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 marcos, 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.
- Puede seleccionar expandir los elementos y ver que la ventana Detalles de la estructura muestra mensajes amigables de WPD/MTP. La convención seguida al escribir los analizadores de WPD es que se puede ver un resumen de los detalles en el 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
!wpdmtpen la ventana Mostrar filtro 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