Información general sobre el seguimiento de eventos USB para Windows
En este tema se proporciona información para los desarrolladores de controladores de cliente sobre las características de seguimiento y registro de Universal Serial Bus (USB). Esta información se proporciona para las ventajas de aquellos que desarrollan y depuran dispositivos USB. Incluye información sobre cómo instalar las herramientas, crear archivos de seguimiento y analizar los eventos en un archivo de seguimiento USB. En el tema se da por supuesto que tiene una comprensión completa del ecosistema y hardware USB que es necesario para usar correctamente las características de seguimiento y registro de USB.
Para interpretar los seguimientos de eventos, también debe comprender los controladores del lado host usb de Windows en Windows, las especificaciones USB oficiales y las especificaciones de clase de dispositivo USB.
El seguimiento de eventos para Windows (ETW) es una instalación de seguimiento de alta velocidad y de uso general proporcionada por el sistema operativo. Usa un mecanismo de almacenamiento en búfer y registro que se implementa en el kernel para proporcionar un mecanismo de seguimiento para los eventos que generan las aplicaciones en modo de usuario y los controladores de dispositivos en modo kernel. Además, ETW proporciona la capacidad de habilitar y deshabilitar dinámicamente el registro, lo que facilita el seguimiento detallado en entornos de producción sin necesidad de reinicios ni reinicios de aplicaciones. El mecanismo de registro usa búferes por procesador que un subproceso de escritura asincrónico escribe en el disco. Este almacenamiento en búfer permite a las aplicaciones de servidor a gran escala escribir eventos con una alteración mínima.
ETW se introdujo en Windows 2000. Desde entonces, varios componentes principales del sistema operativo y del servidor han adoptado ETW para instrumentar sus actividades. ETW es ahora una de las tecnologías clave de instrumentación en plataformas Windows. Un número creciente de aplicaciones de terceros usan ETW para la instrumentación y algunos aprovechan los eventos que proporciona Windows. ETW también se ha abstraido en la tecnología de seguimiento de software del preprocesador de Windows (WPP), que proporciona un conjunto de macros fáciles de usar para rastrear mensajes de estilo printf para la depuración durante el desarrollo.
ETW se actualizó significativamente para Windows Vista y Windows 7. Una de las nuevas características más importantes es el modelo de proveedor de eventos unificado y las API. En resumen, las nuevas API unificadas combinan seguimientos de registro y escritura en la Visor de eventos en un mecanismo coherente y fácil de usar para los proveedores de eventos. Al mismo tiempo, se han agregado varias características nuevas a ETW para mejorar las experiencias del desarrollador y del usuario final.
Para obtener más información sobre ETW y WPP, vea Seguimiento de eventos y seguimiento de eventos para Windows (ETW).
USB es uno de los medios más frecuentes para conectar una variedad cada vez mayor de dispositivos periféricos a equipos. Hay una base muy grande instalada de equipos de host USB y dispositivos periféricos USB, y proveedores de sistemas, proveedores de dispositivos y usuarios finales esperan y exigen que los dispositivos USB funcionen perfectamente en el nivel de sistema y dispositivo.
La gran base instalada y la proliferación de dispositivos USB han descubierto problemas de compatibilidad entre la pila de software USB de Windows, el controlador de host USB y los dispositivos USB. Estos problemas de compatibilidad provocan problemas para los clientes, como errores de operación del dispositivo, bloqueos del sistema y bloqueos del sistema.
Ha sido difícil o imposible investigar y depurar problemas de dispositivos USB sin acceso directo al sistema o dispositivos, o en algunos casos un volcado de memoria del sistema. Incluso con acceso total al hardware y un volcado de memoria, la extracción de la información pertinente ha sido una técnica que solo conoce algunos desarrolladores principales de controladores USB. Puede depurar problemas de USB mediante el uso de analizadores de hardware o software, pero son muy costosos y solo están disponibles para un pequeño porcentaje de profesionales.
ETW proporciona un mecanismo de registro de eventos que la pila de controladores USB puede aprovechar para ayudar a investigar, diagnosticar y depurar problemas relacionados con USB. El registro de eventos ETW de pila de controladores USB admite la mayoría o todas las funcionalidades de depuración que proporciona el mecanismo de registro ad hoc existente en la pila del controlador USB, sin ninguna de sus limitaciones. Esto se traduce en la facilidad de depuración de problemas relacionados con USB, que deben proporcionar una pila de controladores USB más sólida a largo plazo.
Hemos agregado el registro ETW a los controladores del controlador de host USB y al controlador del concentrador USB. La capa del controlador del controlador de host USB incluye el controlador de puerto del controlador de host (usbport.sys) y los controladores de miniporte (usbehci.sys, usbohci.sys y usbuhci.sys). La capa del controlador del concentrador USB consta del controlador del concentrador USB (usbhub.sys).
Eventos del concentrador USB
Mientras la recopilación de eventos USB está habilitada, el proveedor de eventos del concentrador USB notifica la adición y eliminación de concentradores USB, los eventos de resumen del dispositivo de todos los concentradores y los cambios de estado del puerto. Puede usar estos eventos para determinar la causa principal de la mayoría de los errores de enumeración de dispositivos.
Eventos de puerto USB
Mientras la recopilación de eventos USB está habilitada, el proveedor de eventos del puerto USB notifica la E/S de los controladores de cliente, la apertura y el cierre de los puntos de conexión del dispositivo y las transiciones de estado de minipuerto, como el inicio y la detención de miniportar. La E/S registrada incluye solicitudes para el estado de los puertos USB físicos. Las transiciones de estado en puertos USB físicos son uno de los iniciadores clave de la actividad en la pila de controladores USB principal.
Windows proporciona una pila de controladores USB para admitir dispositivos USB 3.0. La pila de controladores USB 3.0 proporcionada por Microsoft consta de tres controladores: Usbxhci.sys, Ucx01000.sys y Usbhub3.sys. Los tres controladores funcionan juntos para agregar compatibilidad nativa a Windows para la mayoría de los controladores host USB 3.0. La nueva pila de controladores admite dispositivos SuperSpeed, de alta velocidad, de velocidad completa y de baja velocidad. A través de seguimientos de eventos, la pila de controladores USB 3.0 proporciona una vista de la actividad específica del controlador host y de todos los dispositivos conectados a él.
Eventos de USB Hub3
Mientras la recopilación de eventos USB está habilitada, el proveedor de eventos USB Hub3 informa de la adición y eliminación de concentradores USB, los eventos de resumen del dispositivo de todos los concentradores, los cambios de estado del puerto y los estados de energía de los dispositivos y concentradores USB. Los cambios de estado del puerto son transiciones de estado en puertos USB físicos y son uno de los iniciadores clave de la actividad en la pila de controladores USB principal. Hub3 informa de las fases del proceso de enumeración, que apuntan a la causa principal, la mayoría de los errores de enumeración de dispositivos. Con la palabra clave StateMachine habilitada, Hub3 informa de la actividad interna de la máquina de estado para los objetos de dispositivo de software, concentrador y puerto, que proporcionan una visibilidad más profunda de la lógica del controlador.
Eventos UCX de USB
Mientras la recopilación de eventos USB está habilitada, el proveedor de eventos UCX USB informa de E/S desde controladores de cliente y apertura y cierre de puntos de conexión y flujos de puntos de conexión de dispositivo. Con la palabra clave StateMachine habilitada, UCX notifica la actividad interna de la máquina de estado para los objetos de punto de conexión y controlador de host, que proporcionan una visibilidad más profunda de la lógica del controlador.
Eventos xHCI de USB
Mientras la recopilación de eventos USB está habilitada, el proveedor de eventos xHCI USB informa de las propiedades de los controladores xHCI del sistema y detalles de bajo nivel de la operación xHCI. xHCI notifica las solicitudes de comandos enviadas y completadas por el hardware xHCI, incluidos los códigos de finalización específicos de xHCI.
Tema | Descripción |
---|---|
Captura de un seguimiento de eventos USB con Logman | En este tema se proporciona información sobre el uso de la herramienta Logman para capturar un seguimiento de eventos ETW USB. Logman es una herramienta de seguimiento integrada en Windows. Puede usar Logman para capturar eventos en un archivo de registro de seguimiento de eventos. |
Uso de GUID de id. de actividad en seguimientos ETW USB | En este tema se proporciona información sobre los GUID de id. de actividad, cómo agregar esos GUID en los proveedores de seguimiento de eventos y verlos en Netmon. |
Seguimientos ETW USB en Netmon | Puede ver seguimientos de eventos ETW USB mediante Microsoft Network Monitor, también conocido como Netmon. Netmon no analiza el seguimiento automáticamente. Requiere analizadores ETW USB. Los analizadores ETW USB son archivos de texto, escritos en lenguaje analizador de monitor de red (NPL), que describen la estructura de seguimientos de eventos ETW USB. Los analizadores también definen columnas y filtros específicos de USB. Estos analizadores hacen que Netmon sea la mejor herramienta para analizar seguimientos ETW USB. |
Uso de Xperf con USB ETW | En este tema se describe cómo usar Xperf con Netmon para analizar los datos de seguimiento usb. |
Administración de energía y ETW USB | En este tema se proporciona información general breve sobre el uso de ETW para examinar el estado de suspensión selectiva usb e identificar problemas de eficiencia energética del sistema mediante la utilidad Windows PowerCfg. |