Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе содержатся сведения для разработчиков драйверов клиентов о функциях трассировки и ведения журнала для универсальной последовательной шины (USB). Эта информация предоставляется для тех, кто разрабатывает и отлаживать USB-устройства. В ней содержатся сведения об установке средств, создании файлов трассировки и анализе событий в USB-файле трассировки. В этом разделе предполагается, что у вас есть полное представление о экосистеме USB и оборудовании, необходимом для успешного использования функций трассировки и ведения журнала USB.
Чтобы интерпретировать трассировки событий, необходимо также понять драйверы usb-узла Windows в Windows, официальные спецификации USB и спецификации класса USB-устройства.
Сведения о трассировке событий для Windows
Трассировка событий для Windows (ETW) — это универсальное средство высокоскоростной трассировки, предоставляемое операционной системой. В нем используется механизм буферизации и ведения журнала, реализованный в ядре, для обеспечения механизма трассировки событий, создаваемых как приложениями в пользовательском режиме, так и драйверами устройств в режиме ядра. Кроме того, ETW позволяет динамически включать и отключать ведение журнала, что упрощает выполнение подробной трассировки в рабочих средах без необходимости перезагрузки или перезапуска приложения. Механизм ведения журнала использует буферы для каждого процессора, записываемые на диск с помощью потока асинхронного модуля записи. Это буферизация позволяет крупномасштабным приложениям сервера записывать события с минимальным нарушением.
ETW появился в Windows 2000. С тех пор различные основные операционные системы и серверные компоненты приняли ETW для инструментирования своих действий. ETW теперь является одним из ключевых технологий инструментирования на платформах Windows. Растущее число сторонних приложений использует ETW для инструментирования, и некоторые используют преимущества событий, которые предоставляет Windows. Включение ETW в технологию трассировки программного обеспечения Windows Preprocessor (WPP) обеспечивает набор простых в использовании макросов для трассировки сообщений в стиле printf, что позволяет проводить отладку во время разработки.
EtW значительно обновлен для Windows Vista и Windows 7. Одним из наиболее важных новых функций является модель единого поставщика событий и API. Вкратце, новые унифицированные API объединяют журналирование трассировок и запись в Просмотр событий в единый и простой в использовании механизм для поставщиков событий. В то же время в ETW добавлено несколько новых функций для улучшения взаимодействия разработчика и конечных пользователей.
Дополнительные сведения о 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 для записи событий в файл журнала трассировки событий. |
| Использование GUID-идентификаторов действий в трассировках USB ETW | В этом разделе содержатся сведения об идентификаторах GUID действий, добавлении этих идентификаторов 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. |