Depuración de problemas de dispositivos USB mediante eventos ETW
En este tema se proporcionan sugerencias para depurar problemas de dispositivos USB mediante eventos ETW.
- Diagnóstico de errores de enumeración de dispositivos
- Diagnóstico de errores de inicio de dispositivo
- Intervalos de inserción de dispositivos de generación de perfiles
- Tiempo de reanudación del dispositivo iniciado por software
- Tiempo de reanudación del dispositivo iniciado por hardware
- HUB RESUME FROM Selective Suspend Timing
Diagnóstico de errores de enumeración de dispositivos
Puede usar los eventos ETW asociados a la tarea de enumeración del concentrador USB para determinar la causa principal de la mayoría de los errores de enumeración de dispositivos.
Para ver los eventos de un registro de seguimiento asociado a la tarea de enumeración del concentrador USB
Abra Netmon y busque un evento de enumeración, como "Start Enumeration of Port". Haga clic en el evento en el panel Resumen de fotogramas .
Confirme que la tarea de este evento es la enumeración del concentrador USB examinando el campo Tarea del evento:
- En el panel Detalles del marco , expanda el evento Net, expanda el encabezado, expanda el descriptor y, a continuación, busque el campo Tarea .
- Confirme que el campo Tarea contiene el valor 2 (enumeración del concentrador USB).
Filtre los eventos para mostrar solo los del controlador concentrador que tengan el valor de tarea 2:
Haga clic con el botón derecho en el campo Tarea .
Seleccione Agregar valor seleccionado para mostrar filtro.
Haga clic con el botón derecho en el evento en el panel Resumen de fotogramas y seleccione Agregar "Nombre de protocolo" para mostrar filtro.
En el panel Filtro de presentación , cambie "OR" a "AND". En el ejemplo siguiente se muestra el filtro resultante:
NetEvent.Header.Descriptor.Task == 0x2 AND ProtocolName == "USBHub_MicrosoftWindowsUSBUSBHUB"
Para obtener más información sobre el uso de filtros en Netmon, vea "Filtros de Netmon USB" en caso práctico: Solución de problemas de un dispositivo USB desconocido mediante ETW y Netmon.
Diagnóstico de errores de inicio de dispositivo
Si un dispositivo no se inicia durante el control del controlador del concentrador del paquete de solicitud de E/S de inicio del dispositivo (IRP), puede usar los eventos ETW asociados a la tarea de inicio del dispositivo USB para solucionar el error. En Netmon, busque un evento de inicio de dispositivo, como "USB Device Start IRP Dispatched". Puede filtrar los eventos para mostrar solo los del controlador del concentrador con un valor de tarea de 21 (inicio del dispositivo USB). Para obtener más información sobre cómo crear este tipo de filtro, vea "Diagnosticar errores de enumeración de dispositivos" en este tema.
Intervalos de inserción de dispositivos de generación de perfiles
Puede determinar dónde se invierte el tiempo en el controlador del concentrador durante la inserción del dispositivo examinando las marcas de tiempo de los eventos de enumeración.
Tiempo de enumeración
La parte del tiempo de inserción del dispositivo que el controlador de concentrador consumió para enumerar un dispositivo es el tiempo transcurrido entre los dos eventos siguientes:
- Iniciar enumeración de puerto
- Enumeración del puerto completado
Tareas de enumeración de generación de perfiles
Cuando el controlador del concentrador USB enumera un dispositivo, registra los siguientes eventos en el orden siguiente:
- Iniciar enumeración de puerto
- Enumeración Debounce Completed
- PDO creado para enumeración
- Primer restablecimiento del puerto de enumeración completado
- Enumeración: CreateDevice Complete
- Segundo restablecimiento del puerto de enumeración completado
- Enumeración: InitializeDevice Complete
- Enumeración: SetupDevice Complete
- Enumeración del puerto completado
Para determinar el tiempo que el controlador de concentrador consumió para cada tarea de enumeración, calcule el tiempo transcurrido entre los eventos anteriores. Tiempo transcurrido entre IoInvalidateDeviceRelations y IRP_MN_QUERY_DEVICE_RELATIONS
Para determinar la parte del tiempo de inserción del dispositivo que el sistema consumió mientras esperaba el IRP de relaciones entre dispositivos de consulta, mida el tiempo transcurrido entre los dos eventos siguientes:
- Enumeración del puerto completado
- Relaciones entre dispositivos de consulta del concentrador USB (BusRelations) IRP enviado
Tiempo transcurrido entre la finalización de IRP_MN_QUERY_DEVICE_RELATIONS y la IRP_MN_START_DEVICE
Para determinar la parte del tiempo de inserción del dispositivo entre notificar el nuevo objeto de dispositivo físico (PDO) al administrador de Plug and Play y la recepción del IRP de inicio, mida el tiempo transcurrido entre los dos eventos siguientes:
- IRP de relaciones de dispositivos de consulta del concentrador USB completado
- Inicio del dispositivo USB IRP enviado
Iniciar tiempo de IRP
Para determinar el tiempo empleado en el controlador del concentrador que controla el IRP de inicio, mida el tiempo transcurrido entre los dos eventos siguientes:
- Inicio del dispositivo USB IRP enviado
- IRP de inicio del dispositivo USB completado
Software-Initiated tiempo de reanudación del dispositivo
El controlador de función de un dispositivo puede enviar una solicitud de alimentación del dispositivo D0 para reanudar el dispositivo desde el estado de suspensión. Para determinar la cantidad de tiempo necesaria para que el dispositivo se reanude de la suspensión y estar listo para las solicitudes de transferencia, mida el tiempo transcurrido entre los dos eventos siguientes:
- USB Device Set D0 Device Power IRP Dispatched
- USB Device Set D0 Device Power IRP Completed
Hardware-Initiated tiempo de reanudación del dispositivo
Una señal de reanudación en el bus hace que un dispositivo se reanude desde el estado suspendido. Para determinar la cantidad de tiempo necesaria para que el dispositivo se reanude a un estado en el que esté listo para las solicitudes de transferencia, mida el tiempo transcurrido entre los dos eventos siguientes:
- El centro primario no está suspendido:
- IRP de reactivación de espera del dispositivo USB completado
- USB Device Set D0 Device Power IRP Completed
- El centro primario está suspendido:
- Reanudación iniciada del concentrador desde la suspensión selectiva (primero de estos eventos para cualquier centro entre el dispositivo y el controlador host)
- USB Device Set D0 Device Power IRP Completed
HUB RESUME FROM Selective Suspend Timing
Puede determinar la cantidad de tiempo necesaria para que un concentrador se reanude desde la suspensión selectiva mediante la medición del tiempo transcurrido entre los dos eventos siguientes:
- Reanudación iniciada del concentrador desde la suspensión selectiva
- Reanudación del centro completado
Nota:
El tiempo de reanudación del concentrador depende del tiempo de reanudación de todos los dispositivos por debajo del centro y posiblemente de algunos o todos los concentradores por encima del concentrador que se está reanudando.