Обзор трассировки событий USB для Windows
В этом разделе содержатся сведения о функциях трассировки и ведения журнала для универсальной последовательной шины (USB). Эта информация предоставляется для тех, кто разрабатывает и отлаживать USB-устройства. В ней содержатся сведения об установке средств, создании файлов трассировки и анализе событий в USB-файле трассировки. В этом разделе предполагается, что у вас есть полное представление о экосистеме USB и оборудовании, необходимом для успешного использования функций трассировки и ведения журнала USB.
Чтобы интерпретировать трассировки событий, необходимо также понять драйверы usb-узла Windows в Windows, официальные спецификации USB и спецификации класса USB-устройства.
Сведения о трассировке событий для Windows
Трассировка событий для Windows (ETW) — это средство трассировки с высокой скоростью, предоставляемое операционной системой. В нем используется механизм буферизации и ведения журнала, реализованный в ядре, для обеспечения механизма трассировки событий, создаваемых как приложениями в пользовательском режиме, так и драйверами устройств в режиме ядра. Кроме того, ETW позволяет динамически включать и отключать ведение журнала, что упрощает выполнение подробной трассировки в рабочих средах без необходимости перезагрузки или перезапуска приложения. Механизм ведения журнала использует буферы для каждого процессора, записываемые на диск с помощью потока асинхронного модуля записи. Это буферизация позволяет крупномасштабным приложениям сервера записывать события с минимальным нарушением.
ETW появился в Windows 2000. С тех пор различные основные операционные системы и серверные компоненты приняли ETW для инструментирования своих действий. ETW теперь является одним из ключевых технологий инструментирования на платформах Windows. Растущее число сторонних приложений использует ETW для инструментирования, и некоторые используют преимущества событий, которые предоставляет Windows. Трассировка программного обеспечения (WPP) также абстрагирована в технологию трассировки программного обеспечения Windows, которая предоставляет набор простых макросов для трассировки сообщений с типом печати для отладки во время разработки.
EtW значительно обновлен для Windows Vista и Windows 7. Одним из наиболее важных новых функций является модель единого поставщика событий и API. Короче говоря, новые унифицированные API объединяют трассировки ведения журнала и запись в Просмотр событий в один согласованный механизм простого использования для поставщиков событий. В то же время в ETW добавлено несколько новых функций для улучшения взаимодействия разработчика и конечных пользователей.
Дополнительные сведения о трассировке событий и WPP см. в разделе "Трассировка событий" и "Трассировка событий" для Windows (ETW).
Поддержка USB для ведения журнала ETW
USB является одним из наиболее распространенных способов подключения постоянно растущего ряда периферийных устройств к компьютерам. Существует очень большая установленная база пк с USB-узлом и периферийных устройств USB, а также поставщики систем, поставщики устройств и конечные пользователи ожидают и требуют, чтобы USB-устройства работали безупречно на уровне системы и устройства.
Крупные установленные базовые устройства и распространение USB-устройств обнаружили проблемы совместимости между стеком ПРОГРАММНОго обеспечения Windows USB, контроллером USB-узла и USB-устройствами. Эти проблемы совместимости вызывают проблемы для клиентов, таких как сбои операций устройства, зависание системы и сбои системы.
Было трудно или невозможно изучить и отладить проблемы USB-устройства без прямого доступа к системе и (или) устройств или в некоторых случаях аварийного дампа системы. Даже с полным доступом к оборудованию и аварийному дампе, извлечение соответствующей информации было интенсивным методом, который известен только несколькими основными разработчиками USB-драйверов. Вы можете отлаживать проблемы USB с помощью аппаратных или программных анализаторов, но они очень дороги и доступны только для небольшого процента специалистов.
Поддержка USB ETW
ETW предоставляет механизм ведения журнала событий, который стек USB-драйверов может использовать для изучения, диагностики и отладки проблем, связанных с USB. Ведение журнала событий etW стека USB-драйверов поддерживает большинство или все возможности отладки, предоставляемые существующим механизмом ведения журнала в стеке USB-драйверов без каких-либо ограничений. Это упрощает отладку проблем, связанных с USB, что должно обеспечить более надежный стек USB-драйверов в долгосрочной перспективе.
Мы добавили ведение журнала ETW в драйверы контроллера USB-узла и драйвер USB-концентратора. Уровень драйвера контроллера USB включает драйвер порта контроллера узла (usbport.sys) и драйверы мини-порта (usbehci.sys, usbohci.sys и usbuhci.sys). Уровень драйвера USB-концентратора состоит из драйвера USB-концентратора (usbhub.sys).
События USB-концентратора
Хотя коллекция событий USB включена, поставщик событий USB-концентратора сообщает о добавлении и удалении USB-концентраторов, события сводки устройств всех концентраторов и изменения состояния порта. Эти события можно использовать для определения первопричины большинства сбоев перечисления устройств.
События USB-порта
Хотя коллекция событий USB включена, поставщик событий USB-порта сообщает о ввода-выводах из клиентских драйверов, открытии и закрытии конечных точек устройства, а также переходов состояния мини-порта, таких как запуск и остановка минипорта. Зарегистрированные операции ввода-вывода включают запросы на состояние физических USB-портов. Переходы состояния на физические USB-порты являются одним из ключевых инициаторов действий в стеке основных USB-драйверов.
Windows предоставляет стек USB-драйверов для поддержки устройств USB 3.0. Стек драйверов USB 3.0, предоставляемый Корпорацией Майкрософт, состоит из трех драйверов: Usbxhci.sys, Ucx01000.sys и Usbhub3.sys. Все три драйвера работают вместе, чтобы добавить встроенную поддержку в Windows для большинства контроллеров узлов USB 3.0. Новый стек драйверов поддерживает superSpeed, высокоскоростные, полноскоростные и низкоскоростные устройства. Через трассировки событий стек драйверов USB 3.0 предоставляет представление о точном действии контроллера узла и всех устройств, подключенных к нему.
События USB Hub3
Хотя коллекция событий USB включена, поставщик событий USB Hub3 сообщает о добавлении и удалении USB-концентраторов, сводных событий устройств всех концентраторов, изменения состояния порта и состояний питания USB-устройств и концентраторов. Изменения состояния порта — это переходы состояния на физические USB-порты и являются одним из ключевых инициаторов действий в стеке основных USB-драйверов. Hub3 сообщает этапы процесса перечисления, указывающие на первопричину большинства сбоев перечисления устройств. С включенным ключевым словом StateMachine Hub3 сообщает о действиях внутреннего компьютера состояния для программного устройства, концентратора и портов, которые обеспечивают более глубокую видимость логики драйвера.
События USB UCX
Хотя коллекция событий USB включена, поставщик событий USB UCX сообщает об операции ввода-вывода из клиентских драйверов и открытии и закрытии конечных точек устройства и потоков конечных точек. С включенным ключевым словом StateMachine UCX сообщает о действиях внутреннего компьютера состояния для контроллера узла и объектов конечных точек, которые обеспечивают более глубокую видимость логики драйвера.
События USB xHCI
Хотя коллекция событий USB включена, поставщик событий USB xHCI сообщает свойства контроллеров xHCI системы и низкоуровневые сведения о операции xHCI. Запросы команд xHCI, отправленные и завершенные оборудованием xHCI, включая коды завершения xHCI.
В этом разделе
Раздел | Описание |
---|---|
Как записать трассировку событий USB с помощью Logman | В этом разделе содержатся сведения об использовании средства Logman для записи трассировки событий USB ETW. Logman — это средство трассировки, встроенное в Windows. Вы можете использовать Logman для записи событий в файл журнала трассировки событий. |
Использование идентификаторов идентификаторов идентификаторов действий в трассировках USB ETW | В этом разделе содержатся сведения об идентификаторах ИДЕНТИФИКАТОРов действий, добавлении этих идентификаторов GUID в поставщики трассировки событий и их просмотре в Netmon. |
Трассировки USB ETW в Netmon | Трассировки событий USB ETW можно просмотреть с помощью Microsoft Network Monitor, также называемого Netmon. Netmon не анализирует трассировку автоматически. Для этого требуются средства синтаксического анализа USB ETW. Средства синтаксического анализа USB ETW — это текстовые файлы, написанные на языке анализатора сетевого монитора (NPL), описывающие структуру трассировок событий USB ETW. Средства синтаксического анализа также определяют столбцы и фильтры, относящиеся к USB. Эти средства синтаксического анализа делают Netmon лучшим средством для анализа трассировок USB ETW. |
Использование Xperf с USB ETW | В этом разделе описывается, как использовать Xperf с Netmon для анализа данных трассировки USB. |
USB ETW и управление питанием | В этом разделе представлен краткий обзор использования ETW для проверки состояния выборочной приостановки USB и выявления проблем с эффективностью системы с помощью служебной программы Windows PowerCfg. |