USB в Windows — вопросы и ответы

В этом разделе представлены часто задаваемые вопросы для разработчиков драйверов, которые не знакомы с разработкой и интеграцией USB-устройств и драйверов с операционными системами Windows.

Я слышу многочисленные термины USB, брошенные вокруг почти взаимозаменяемо. Что все они означают?

Предположим, вы видите примерно следующее: "Благодаря USB 3.0 я могу подключить usb-накопитель SuperSpeed к контроллеру узла xHCI моего компьютера и быстрее копировать файлы".

Давайте разберемся с терминами USB в этом предложении. USB 3.0, USB 2.0 и USB 1.0 относятся к номеру редакции спецификации USB на форуме разработчиков USB. Спецификации USB определяют, как главный компьютер и USB-устройство взаимодействуют друг с другом.

Номер версии также указывает максимальную скорость передачи. Последней редакцией спецификации является USB 3.0, которая определяет максимальную скорость передачи до 5 Гбит/с. USB 1.0 определяет две разных скорости передачи данных: usb с низкой скоростью (до 1,5 Мбит/с) и полноскоростной USB (до 12 Мбит/с). USB 2.0 определяет новую скорость передачи данных, высокоскоростной USB (480 Мбит/с), сохраняя при этом поддержку низко- и полноскоростных устройств. USB 3.0 продолжает работать со всеми ранее определенными скоростями данных. Если вы посмотрите на упаковку продукта, SuperSpeed USB ссылается на новейшие устройства USB 3.0. Hi-Speed USB используется для описания высокоскоростных устройств USB 2.0. USB без дескриптора относится к низкоскоростным и полноскоростным устройствам.

В дополнение к протоколу USB существует вторая спецификация для контроллера УЗЛА USB, часть оборудования на компьютере, к которому подключено устройство. Спецификация интерфейса контроллера узла определяет взаимодействие оборудования и программного обеспечения контроллера узла. Интерфейс расширяемого хост-контроллера (xHCI) определяет хост-контроллер USB 3.0. Расширенный интерфейс хост-контроллера (EHCI) определяет контроллер узла USB 2.0. Универсальный хост-контроллер (UHCI) и открытый хост-контроллер (OHCI) — это две альтернативные реализации контроллера узла USB 1.0.

Есть ли на компьютере порты USB 3.0?

Порты USB 3.0 либо помечены логотипом SuperSpeed USB, либо обычно синим.

порт с логотипом USB

синий порт USB 3.0

Более новые компьютеры имеют порты USB 3.0 и USB 2.0. Если вы хотите, чтобы usb-устройство SuperSpeed выполнялось на верхней скорости, найдите порт USB 3.0 и подключите устройство к нему. Устройство SuperSpeed, подключенное к порту USB 2.0, работает на высокой скорости.

Вы также можете проверить, является ли определенный порт портом USB 3.0 в диспетчер устройств. В Windows Vista или более поздней версии Windows откройте диспетчер устройств и выберите порт из списка.

контроллеры узла USB в диспетчере устройств

Если у вас есть расширяемый хост-контроллер, он поддерживает USB 3.0.

Нужно ли устанавливать драйверы для контроллера узла eXtensible?

Windows 8 и Windows Server 2012 включают поддержку USB 3.0.

Если компьютер имеет порты USB 3.0 и использует версию Windows до Windows 8, драйверы хост-контроллера предоставляются изготовителем компьютера. Если необходимо переустановить эти драйверы, необходимо получить их у производителя.

Если вы добавили контроллер USB 3.0 карта на компьютер под управлением версии Windows, более ранней, чем Windows 8, необходимо установить драйверы, предоставленные изготовителем контроллера карта.

В Windows 8 набор драйверов USB 3.0 (стек usb-драйверов) корпорации Майкрософт работает с большинством хост-контроллеров. Стек драйверов Microsoft USB 3.0 не работает с контроллером Fl1000 логики Фрески. Чтобы определить, есть ли у вас контроллер FL1000, откройте диспетчер устройств и разверните узел Контроллеры универсальной последовательной шины. Просмотрите свойства контроллера, выбрав и удерживая (или щелкнув правой кнопкой мыши) узел контроллера. На вкладке Сведения выберите свойство Hardware Ids в списке. Если идентификатор оборудования начинается с PCI\VEN_1B73&DEV_1000, это FL1000. Для этого контроллера скачайте и установите драйверы с компьютера или контроллера карта изготовителя.

Почему в системе отображается несколько контроллеров узла?

В дополнение к USB-устройствам, которые вы подключаетесь к компьютеру, есть ряд устройств, интегрированных в компьютер, которые могут быть подключены через USB, например веб-камера, сканер отпечатков пальцев, считыватель SD-карт. Чтобы подключить все эти устройства и по-прежнему предоставить внешние USB-порты, компьютер поддерживает несколько USB-контроллеров узлов.

Контроллер узла USB 3.0 xHCI полностью обратно совместим со всеми скоростями USB-устройств, SuperSpeed, высокой, полной и низкой скоростью. Вы можете подключить любое устройство непосредственно к контроллеру xHCI и ожидать, что это устройство будет работать. Для контроллера EHCI это не так. Хотя спецификация USB 2.0 поддерживает все скорости устройств, контроллер EHCI поддерживает только высокоскоростные USB-устройства. Чтобы полноскоростные и низкоскоростные USB-устройства работали, они должны быть подключены к контроллеру EHCI через концентратор USB 2.0 или должны быть подключены к контроллеру UHCI или OHCI.

Для более новых компьютеров большинство портов USB 2.0, предоставляемых компьютерами, являются подчиненными концентратору USB 2.0. Этот концентратор подключен к контроллеру EHCI. Это позволяет порту USB 2.0 компьютера работать со всеми скоростями устройств. Устройства SuperSpeed ведут себя как высокоскоростные устройства при подключении к порту 2.0.

После выпуска спецификации USB 2.0 компьютеры использовали комбинацию хост-контроллеров для поддержки всех скоростей устройств. Один порт USB 2.0 будет подключен к двум контроллерам узла, контроллеру узла EHCI и контроллеру узла UHCI или OHCI. При подключении устройства оборудование динамически направляет подключение к одному из двух узлов. Подпрограмма зависит от скорости устройства.

Почему в диспетчер устройств отображаются два концентратора, если подключен только один концентратор USB 3.0?

Хотя контроллеры узла xHCI работают с любой скоростью устройства, концентратор SuperSpeed работает только с устройствами SuperSpeed. Чтобы обеспечить работу концентраторов USB 3.0 со всеми скоростями, они имеют две части: концентратор SuperSpeed и концентратор USB 2.0. Концентратор USB 3.0 может поддерживать все скорости за счет динамической маршрутизации устройств к концентратору SuperSpeed или концентратору 2.0 в зависимости от скорости устройства.

Откройте диспетчер устройств, просмотрите раздел Устройства по подключению, а затем найдите расширяемый хост-контроллер. При подключении одного концентратора USB 3.0 к порту USB 3.0 ниже корневого концентратора контроллеров находятся два концентратора.

концентратор usb 3.0 в диспетчере устройств

В приведенном ниже примере usb-накопитель SuperSpeed и usb audio подключены к концентратору USB 3.0. Вы увидите, что устройство хранения находится ниже концентратора SuperSpeed, а звуковое устройство — ниже концентратора USB 2.0.

Концентратор usb 3.0 с подключенными устройствами в диспетчере устройств

Какой набор драйверов загружается для устройств, подключенных к портам 2.0?

Для каждого типа контроллера узла загружается отдельный набор двоичных файлов. Важно понимать, что стек USB-драйверов, который загружает Windows, соответствует типу хост-контроллера, а не скорости подключенного устройства.

На этом изображении показано, какие драйверы загружаются для каждого из разных типов usb-контроллеров узлов.

стек драйверов USB в Windows 8

Если порт USB 3.0 правильно направляется на контроллер xHCI, Windows загружает стек драйверов xHCI (также называемый стеком драйверов USB 3.0).

Если порт USB 2.0 подключен к контроллеру EHCI через концентратор USB 2.0, трафик перемещается через контроллер EHCI и загружается стек драйверов USB 2.0.

Дополнительные сведения о драйверах в стеке драйверов USB см. в статье Драйверы на стороне узла USB в Windows.

Если порты USB 2.0 компьютера используют сопутствующий контроллер, хост-контроллер, на который направляется порт, зависит от скорости устройства. Например, низкоскоростное устройство подключается через контроллер UHCI или OHCI и использует драйвер USBUHCI или USBOHCI. Компьютер направляет высокоскоростное устройство на контроллер EHCI, поэтому Windows использует драйвер USBEHCI.

Разные скорости устройства не определяют драйвер, загруженный для контроллера. Тем не менее, различные скорости устройства могут определять, какой контроллер используется. Контроллер всегда использует один и тот же драйвер.

Разделы справки определить, работает ли устройство USB 3.0 как SuperSpeed?

В Windows 8 сначала убедитесь, что у вас есть порт USB 3.0 и контроллер узла xHCI. Если устройство SuperSpeed USB подключено к хост-контроллеру xHCI, Windows 8 отображается сообщение "Подключено к USB 3.0" в определенных участках пользовательского интерфейса Windows 8. Если устройство подключено к контроллеру EHCI, а не к контроллеру XHCI, сообщения будут содержать сообщение "Устройство может работать быстрее при подключении к USB 3.0".

Эти сообщения пользовательского интерфейса можно просмотреть в разделе Параметры компьютера.

  1. Откройте панель чудо-кнопок (перетащите курсор в правый верхний или нижний угол экрана, введите клавиши Windows + C или проведите пальцем вправо).
  2. Выберите Параметры , а затем — Изменить параметры компьютера.
  3. Выберите Устройства в разделе Параметры компьютера.

На этом изображении показано сообщение пользовательского интерфейса, когда устройство USB 3.0 работает в SuperSpeed.

Снимок экрана:

На этом изображении показано сообщение пользовательского интерфейса, когда USB-устройство работает со скоростью шины, которая ниже, чем у SuperSpeed.

Снимок экрана: выбранный элемент

Аналогичные сообщения можно просмотреть в разделе Устройства и принтеры, как показано на этих изображениях.

Снимок экрана:

Сверхскоростное устройство, работающее на высокой скорости

Если устройство USB 3.0 является запоминающее устройство, windows Обозреватель отображать аналогичные сообщения при выборе метки тома, как показано ниже. Обратите внимание, что для отображения сообщения должна быть выбрана область Вид —> сведения .

Снимок экрана: перемежающееся устройство U S B, выбранное в разделе

usb-устройство superspeed, работающее на высокой скорости

Если вы пишете драйвер устройства, средство USBView , входящее в комплект драйверов Windows (WDK), очень полезно. Для Windows 8 WDK корпорация Майкрософт обновила USBView для отображения сведений о SuperSpeed USB. С помощью этого средства можно определить, работает ли ваше устройство в SuperSpeed. На этом изображении показано устройство USB 3.0, работающее в SuperSpeed в USBView.

usb-устройство superspeed, работающее на superspeed

Если вы являетесь разработчиком драйверов устройств, стек драйверов USB предоставляет новый IOCTL, который называется IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, который можно использовать для запроса сведений о скорости для устройств USB 3.0.

Почему мое USB-устройство SuperSpeed не быстрее, чем эквивалентное высокоскоростное USB-устройство?

Как правило, если USB-устройство USB 3.0 работает не быстрее, чем высокоскоростное USB-устройство, оно не работает в SuperSpeed. Если USB-устройство SuperSpeed подключено к порту USB 3.0, оно может не работать в SuperSpeed по следующим причинам:

  • Вы используете концентратор USB 2.0.

    Если вы используете концентратор, убедитесь, что он является концентратором USB 3.0. Если вы используете концентратор USB 2.0, любое подключенное USB-устройство SuperSpeed будет работать на высокой скорости. Замените концентратор концентратором USB 3.0 или подключите устройство непосредственно к порту USB 3.0.

  • Встроенное ПО на концентраторе USB 3.0 устарело.

    Некоторые более ранние концентраторы USB 3.0 работали неправильно. В результате Windows использует только часть этих концентраторов версии 2.0. Если диспетчер устройств указывает на нефункциональный концентратор, как показано на этом рисунке, Windows 8 не использует часть концентратора версии 3.0.

    нефункциональный usb-концентратор с заменой

    Вы можете подключить устройство SuperSpeed непосредственно к порту USB 3.0 или обновить встроенное ПО в концентраторе. Windows 8 распознает концентраторы с более новыми версиями встроенного ПО.

  • Устройство подключено с помощью кабеля USB 2.0.

    Убедитесь, что кабель, используемый для подключения устройства, является кабелем USB 3.0. Кроме того, возможно, что кабель USB 3.0 имеет проблемы с целостностью сигнала. В этом случае устройство может переключиться на высокую скорость. В этом случае необходимо использовать другой кабель USB 3.0.

  • Встроенное ПО на устройстве устарело.

    Обновите встроенное ПО для usb-устройства SuperSpeed, получив последнюю версию на веб-сайте производителя. Некоторые производители USB-устройств SuperSpeed выпускают исправления для ошибок, обнаруженных в устройстве, как обновления встроенного ПО.

  • Встроенное ПО на хост-контроллере устарело.

    Обновите встроенное ПО для контроллера USB 3.0, получив последнюю версию на сайте изготовителя компьютера или на сайте производителя карта. Некоторые производители контроллеров USB 3.0 выпускают исправления для ошибок, обнаруженных в контроллере, как обновления встроенного ПО.

  • BIOS для вашей системы устарел.

    Обновите BIOS для системы, получив последнюю версию от изготовителя компьютера. На некоторых системных платах BIOS может неправильно направлять устройство, подключенное к контроллеру узла xHCI, в контроллер EHCI. Эта неправильная маршрутизация заставляет USB-устройство SuperSpeed работать на высокой скорости. Обновление BIOS может устранить эту проблему.

Можно ли использовать составные и составные устройства в одном оборудовании?

Да. Примером составного USB-устройства является Microsoft Natural Keyboard Pro, который имеет трехпортовый концентратор с питанием от шины. Устройство имеет составное устройство, подключенное к порту 1. Пользователю предоставляются два дополнительных порта.

Устройство, подключенное к порту 1, является низкоскоростным составным устройством. Устройство имеет два интерфейса, оба из которых соответствуют стандартному определению класса устройств USB для устройств с человеческим интерфейсом (HID). Составное устройство предоставляет два интерфейса HID вместо мультиплексирования всех коллекций по одному интерфейсу HID с помощью коллекций верхнего уровня. Эта конструкция была выбрана для совместимости с более старыми BIOSs.

Почему некоторые USB-устройства переустановляются при перемещении на новый порт?

В Windows 2000 и более поздних версиях при перемещении USB-устройства с одного порта на другой создается новый объект физического устройства (PDO). Если оборудование сообщает уникальный серийный номер USB, новое PDO не создается.

Чтобы повторно использовать одно и то же PDO и убедиться, что взаимодействие с устройством не изменилось независимо от того, будет ли устройство повторно включено в тот же порт или в новый порт, поставщики оборудования должны сохранить серийный номер на своем устройстве. В соответствии с требованиями программы сертификации оборудования Windows серийный номер должен быть уникальным для всех устройств, у которых есть идентификатор установки устройства.

Есть ли список рекомендаций по проектированию для упаковки usb-продуктов?

USB-IF сотрудничает с корпорацией Майкрософт и другими компаниями-членами USB-IF, чтобы разработать список рекомендаций для независимых поставщиков оборудования для включения в их упаковку.

Дополнительные сведения см. на веб-сайте USB.

Сведения о usb Hi-Speed и SuperSpeed см. в разделе https://www.usb.org/.

Нужно ли переписать драйвер клиента для поддержки устройств USB 3.0?

Все существующие клиентские драйверы должны продолжать работать, как и при подключении устройства с низкой, полной или высокой скоростью к порту USB 3.0. В Windows 8 мы обеспечили совместимость с существующими клиентскими драйверами.

Стек драйверов USB 3.0 поддерживает уровни IRQL, контекст вызывающего элемента и состояние ошибки; Частоту повторных попыток и время взаимодействия с устройствами и многое другое, чтобы убедиться, что существующие драйверы продолжают работать. Это еще очень важно для тестирования.

Распространенные сбои возникают из-за:

  • Анализ дескриптора конечной точки драйвера прерывается из-за наличия дескрипторов-компаньонов конечной точки SuperSpeed.
  • Из-за повышенной скорости могут возникнуть проблемы со временем на уровне протокола приложения.
  • Максимальный размер пакета, поддерживаемый конечной точкой, может отличаться.
  • Из-за управления питанием функций время выборочной приостановки может отличаться.

В Windows 7 и более ранних версиях операционных систем стек драйверов USB 3.0 предоставляется сторонними разработчиками. Поэтому мы настоятельно рекомендуем протестировать драйвер для работы со сторонними стеками драйверов USB.

Новые клиентские драйверы в Windows 8 для высокоскоростных и SUPERSpeed USB-устройств должны выбирать новые возможности.

Какой драйвер загружается для моего устройства хранения SuperSpeed, Uaspstor.sys или Usbstor.sys?

Протокол USB Attached SCSI (UAS) — это новый протокол запоминающего устройства, предназначенный для повышения производительности по сравнению с установленным протоколом USB-хранилища массовой памяти (BOT). Это делается за счет снижения затрат на протокол, поддержки собственных очередей команд SATA (NCQ) и параллельной обработки нескольких команд. Для этого UAS использует новую функцию USB 3.0 для массовой передачи, которая называется потоками.

Существующий драйвер запоминающих устройств, Usbstor.sys, использует протокол BOT. Он работает со всеми скоростями устройств, включая USB-устройства SuperSpeed.

Для Windows 8 корпорация Майкрософт включает новый драйвер класса запоминающих устройств, Uaspstor.sys который использует протокол UAS. Так как потоки являются новыми для USB 3.0, Uaspstor.sys могут использовать потоки только в том случае, если оборудование поддерживает потоки (USB-устройство SuperSpeed подключено к контроллеру узла xHCI). Драйвер также включает поддержку программных потоков, поэтому он также может загружаться для устройств, работающих на высокой скорости, независимо от типа узла.

Если вы подключаете запоминающее устройство к Windows 8 и оно поддерживает UAS, Windows загружает Uaspstor.sys. В некоторых случаях могут возникать известные проблемы с аппаратными потоками на определенном хост-контроллере xHCI или известные проблемы с реализацией протокола UAS устройства. В таких случаях Windows возвращается к протоколу BOT и загружает драйвер Usbstor.sys.

Uaspstor.sys новые возможности Windows 8. Он отсутствует в более ранних версиях Windows.

Какие классы USB DWG поддерживает корпорация Майкрософт?

Windows поддерживает несколько классов USB, определенных рабочей группой USB-устройств (DWG). Текущий список спецификаций и кодов классов USB см. на веб-сайте USB DWG по адресу https://www.usb.org/documents.

В этой таблице выделены классы DWG USB, которые поддерживаются в Windows, а также указаны версии Windows, поддерживающие каждый класс.

Спецификация класса Код bDeviceClass Имя драйвера Поддержка Windows
Класс Bluetooth 0xE0 Bthusb.sys Windows XP и более поздних версий.
Устройства с интерфейсом микросхем и смарт-карта (CCID) 0x0B Usbccid.sys

Windows Server 2008 и более поздних версий.

Windows Vista и более поздние версии

Windows Server 2003

Windows XP

Windows 2000

Класс Hub 0x09 Usbhub.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

Устройство HID 0x03 Hidusb.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

Класс запоминающих устройств (MSC) 0x08 Usbstor.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

SCSI с подключением к USB (UAS) 0x08 Uaspstor.sys

Windows Server 2012

Windows 8

Класс печати 0x07 Usbprint.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

Сканирование и обработка изображений (PTP) 0x06

WpdUsb.sys

Usbscan.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

Передача мультимедиа (MTP) 0x06 WpdUsb.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Класс USB Audio 0x01 Usbaudio.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

Класс Modem (CDC) 0x02 Usbser.sys

Windows Server 2003 и более поздние версии

Windows XP и более поздних версий.

Windows 2000 и более поздние версии

Класс Video (UVC) 0x0E Usbvideo.sys

Windows Vista и более поздние версии

Windows XP

*Для загрузки этого драйвера необходимы специальные инструкции, так как этот драйвер мог быть выпущен позже, чем операционная система. Драйверы класса Windows могут поддерживать не все функции, описанные в спецификации класса DWG. В этом случае драйвер не загружается на основе соответствия класса. Дополнительные сведения о реализованных функциях в спецификации класса см. в документации по WDK.

Какой класс настройки устройства следует использовать для пользовательского USB-устройства?

Корпорация Майкрософт предоставляет системные классы установки для большинства типов устройств. Идентификаторы GUID класса установки, определяемые системой, определяются в Devguid.h. Дополнительные сведения см. в разделе WDK. Список GUID класса Windows см. в следующих разделах:

Независимые поставщики оборудования должны использовать класс установки, связанный с типом USB-устройства, а не с типом шины. Если вы разрабатываете тип устройства, для которого корпорация Майкрософт не предоставила guid существующего класса, можно определить новый класс настройки устройства.

В Windows 8 определен новый класс установки с именем USBDevice (ClassGuid = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}). Если вы разрабатываете тип устройства, свяжите устройство с USBDevice вместо класса установки USB. Класс USBDevice работает в Windows Vista и более поздних версиях операционной системы.

Класс установки USB (ClassGuid = {36fc9e60-c465-11cf-8056-444553540000}) зарезервирован только для usb-контроллеров узлов и USB-концентраторов и не должен использоваться для других категорий устройств. Неправильное использование этого класса установки может привести к сбою проверки логотипа Windows драйвером устройства.

Почему процессор не входит в C3 при подключении некоторых USB-устройств?

При подключении USB-устройства контроллер узла USB опрашивает планировщик кадров, который представляет собой шину прямого доступа к памяти (DMA) master операции. "События прерывания", такие как трафик master шины, прерывания или несколько других системных действий, перемещают ЦП из C3, так как по определению кэш ЦП не может быть отлечен, пока он находится в C3.

Существует два способа решения этой проблемы:

  • Удаление оборудования.

    Иногда оборудование может быть отключено от универсальной последовательной шины в электронном виде. Например, при удалении запоминающего носителя из USB-считывания устройство чтения USB может эмулировать электронное отключение и повторное подключение при повторной вставке носителя. В этом случае переходы C3 могут происходить из-за отсутствия USB-устройств на хост-контроллере.

  • Выборочная приостановка.

    Единственной альтернативой, доступной в Windows XP и более поздних версиях операционных систем, является поддержка выборочной приостановки USB. Эта функция позволяет драйверу приостановить РАБОТУ USB-устройства, которым он управляет, когда устройство переходит в режим простоя, даже если сама система остается в состоянии полного питания (S0). Выборочная приостановка особенно эффективна, если ее поддерживают все драйверы функций USB. Если хотя бы один драйвер не поддерживает его, ЦП не сможет войти в C3. Дополнительные сведения о выборочной приостановке см. в разделе WDK.

Какие драйверы USB-класса поддерживают выборочную приостановку?

Ниже приведен список драйверов класса USB в Windows 8, поддерживающих выборочную приостановку.

  • Bluetooth

    Этот драйвер может выборочно приостанавливать устройства на компьютерах под управлением Windows XP с пакетом обновления 2 (SP2) и более поздних версий Windows. Драйверу требуется, чтобы радиосвязь Bluetooth устанавливала разряды пробуждения с автономным и удаленным питанием в дескрипторе конфигурации. Драйвер выборочно приостанавливает (D2) bluetooth-радио, если не существует активных подключений По Bluetooth.

  • USB HID

    Этот драйвер может выборочно приостановить устройство HID. Вы несете ответственность за активацию сигнала удаленного пробуждения при всех изменениях состояния устройства. Чтобы включить выборочную приостановку в стеке HID, значение реестра SelectiveSuspendEnabled должно быть включено для конкретного VID+PID устройства. Примеры см. в разделе Input.inf.

    В системах, поддерживающих режим ожидания с подключением Windows 8, этот драйвер вводит выборочную приостановку (D2), когда система находится в режиме ожидания с подключением. Этот драйвер может разбудить систему и включить экран.

  • USB-концентратор

    Этот драйвер может выборочно приостановить корневой или внешний концентратор, если к нему не подключены никакие устройства или если все устройства, подключенные к этому концентратору, могут быть выборочно приостановлены.

  • USB-модем

    Этот драйвер может выборочно приостановить работу устройства, если не существует активных подключений модема.

  • USB-хранилище (BOT)

    Этот драйвер может выборочно приостанавливать устройства хранения данных (D3) в системах, поддерживающих Windows 8 connected Standby, когда эти системы переходят в режим ожидания с подключением. Как и HID, существует переопределение реестра для включения выборочной приостановки во всех Windows 8 системах.

  • USB-хранилище (UAS)

    Этот драйвер может выборочно приостанавливать (D3) запоминающее устройство, когда оно находится в состоянии простоя в течение времени ожидания диска.

  • Видео по USB

    Этот драйвер может выборочно приостановить (D3) веб-камеру в Windows Vista и более поздних версиях операционной системы.

  • USB Audio

    Этот драйвер может выборочно приостанавливать (D3) USB-звуковое устройство в операционных системах Windows 7 и более поздних версий, когда компьютер работает от батареи.

  • Композитный USB

    Этот драйвер может выборочно приостанавливать составные устройства (D3), когда все дочерние элементы находятся в состоянии приостановки. В системах, поддерживающих D3-Cold, все дочерние элементы должны выбрать D3-Cold.

  • Смарт-карта USB

    Этот драйвер может выборочно приостанавливать (D2) устройства с интерфейсом смарт-карт по умолчанию в операционных системах Windows 7 и более поздних версий.

  • Универсальные периферийные устройства USB (WinUSB)

    Этот драйвер может выборочно приостанавливать устройства (D3) по умолчанию в операционных системах Windows Vista и более поздних версий.

  • WWAN: 3G или WiMax Dongles

    Этот драйвер может выборочно приостанавливать устройства. При наличии активной подписки устройство переходит в D2, без активной подписки устройство переходит в D3.

Почему USB-устройство не может пробудить Windows из S3?

USB-устройство не может разбудить Windows из S3 по нескольким причинам, в том числе по следующим причинам:

  1. Неправильный BIOS.

    Убедитесь, что на компьютере установлена последняя версия BIOS. Чтобы получить последнюю версию BIOS для компьютера, посетите веб-сайт изготовителя оборудования или ODM.

  2. BIOS, которая не включена для пробуждения.

    Некоторые БИОСЫ позволяют отключить пробуждение из S3 и S4. Убедитесь, что BIOS включен для выхода из S3.

  3. Раздел реестра USBBIOSx не задан.

    При чистой установке Windows XP отсутствует раздел реестра USBBIOSx. Если изготовитель оборудования или ODM проверяет, может ли BIOS выйти из S3, задайте для этого раздела реестра 0x00 и перезагрузите компьютер.

  4. Главный контроллер не имеет питания в S3 или S4.

    Во многих случаях компьютер отключает питание надстройки карта, когда компьютер находится в состоянии меньшего питания. Если надстройка карта не работает, она не сможет обнаружить событие пробуждения и не сможет разбудить компьютер.

Дополнительные сведения см. в средстве устранения неполадок USB в центре справки и поддержки в Windows XP и более поздних версиях Windows.

Нужно ли устанавливать драйверы для моего расширенного хост-контроллера (USB 2.0)?

Следующие версии Windows поддерживают расширенный хост-контроллер USB 2.0:

  • Windows Vista и более поздние версии
  • Windows Server 2003 и более поздние версии
  • Windows XP с пакетом обновления 1 (SP1)
  • Windows 2000 с пакетом обновления 4 (SP4)

Примечание Так как Windows 2000 и Windows XP были выпущены до появления оборудования USB 2.0, драйверы были выпущены для этих операционных систем в пакетах обновления. Чтобы установить драйверы, выполните приведенные далее действия.

  1. Выполните процедуру, описанную в ответе на первый вопрос, чтобы убедиться, что на компьютере есть порты USB 2.0 и что необходимо установить драйвер для расширенного хост-контроллера.

  2. В окне диспетчер устройств разверните раздел Другие устройства, как описано в первом вопросе, а затем дважды щелкните контроллер УНИВЕРСАЛЬНОй последовательной шины (USB).

  3. На вкладке Общие диалогового окна Свойства выберите Переустановить драйвер.

    Переустановите драйвер

  4. В мастере добавления нового оборудования выберите Установить программное обеспечение автоматически (рекомендуется) и нажмите кнопку Далее. Продолжайте работу с мастером, принимая все параметры по умолчанию, пока не дойдете до последней страницы мастера, а затем нажмите кнопку Готово. Для завершения установки может потребоваться перезагрузить компьютер.

Примечание Чтобы убедиться, что на компьютере установлены последние обновления, регулярно посетите клиентский компонент Центра обновления Windows.

Можно ли отключить уведомление "УСТРОЙСТВО HI-SPEED USB подключено к USB-порту, отличному от HI-SPEED"?

Windows XP и более поздние версии Windows создают всплывающее уведомление, когда высокоскоростное USB-устройство подключено к USB-порту, который не поддерживает высокую скорость. Чтобы добиться максимальной производительности устройства, пользователи должны выбрать уведомление и следовать инструкциям на экране.

Чтобы отключить уведомление, выполните следующие действия.

  1. Начните диспетчер устройств, как описано в первом вопросе в этом разделе вопросов и ответов.
  2. В окне диспетчер устройств разверните узел Контроллеры универсальной последовательной шины. Найдите главный контроллер со словом "Универсальный" или "Открыть" в заголовке. Если вы нашли его, дважды щелкните его.
  3. На вкладке Дополнительно диалогового окна Свойства выберите Не сообщать об ошибках USB.

Примечание Предыдущая процедура отключает все уведомления USB, а не только "УСТРОЙСТВО HI-SPEED USB подключено к порту, отличному от HI-SPEED".

Является ли концентратор USB 2.0 одним или несколькими TT?

Концентратор USB 2.0 может иметь один транслятор транзакций (TT) для всех подчиненных портов в концентраторе (один TT) или один TT для каждого нижестоящего порта в концентраторе (несколько TT).

Значение поля bDeviceProtocol дескриптора USB-устройства и поля bInterfaceProtocol дескриптора интерфейса USB указывает, является ли концентратор одним или несколькими TT:

  • Single-TT. bDeviceProtocol == 0x01
  • Несколько TT. bDeviceProtocol == 0x02

Usbhub.sys использует этот параметр для включения режима с несколькими TT или с одним TT. В Windows XP и более поздних версиях Usbhub.sys всегда включает режим с несколькими TT на концентраторе с несколькими TT. Дополнительные сведения о макете TT см. в разделах 11.14.1.3 и 11.23.1 спецификации USB 2.0.

Какие символы или байты допустимы в серийном номере USB?

Поле iSerialNumber дескриптора USB-устройства указывает, имеет ли устройство серийный номер и где хранится этот номер, следующим образом:

  • iSerialNumber == 0x00: у USB-устройства нет серийного номера.
  • iSerialNumber != 0x00: USB-устройство имеет серийный номер. Значение, присвоенное iSerialNumber , является строковым индексом серийного номера.

Если устройство имеет серийный номер, серийный номер должен однозначно идентифицировать каждый экземпляр одного и того же устройства.

Например, если два дескриптора устройства имеют одинаковые значения для полей idVendor, idProduct и bcdDevice , поле iSerialNumber должно отличаться, чтобы отличать одно устройство от другого.

Plug and Play требует, чтобы каждый байт в серийном номере USB был допустимым. Если один байт недопустим, Windows отменяет серийный номер и обрабатывает устройство так, как если бы оно не имело серийного номера. Следующие байтовые значения недопустимы для серийных номеров USB:

  • 0x2C.
  • Значения меньше 0x20.
  • Значения больше 0x7F.

Дополнительные сведения о значении iSerialNumber см. в разделе 9.6.1 спецификации USB 2.0.

Какой LANGID используется в строковом запросе в локализованных сборках Windows?

USB-устройство указывает на наличие серийного номера, устанавливая в поле iSerialNumber дескриптора USB-устройства строковый индекс серийного номера. Чтобы получить серийный номер, Windows отправляет строковый запрос с идентификатором языка (LANGID), для которого задано значение 0x0409 (английский (США). Windows всегда использует этот LANGID для получения серийных номеров USB, даже для версий Windows, локализованных для других языков.

Какой LANGID используется для извлечения серийного номера устройства?

USB-устройство указывает на наличие серийного номера, устанавливая в поле iSerialNumber дескриптора USB-устройства строковый индекс серийного номера. Чтобы получить серийный номер, Windows отправляет строковый запрос с идентификатором языка (LANGID), для которого задано значение 0x0409 (английский (США). Windows всегда использует этот LANGID для получения серийных номеров USB, даже для версий Windows, локализованных для других языков.

Как следует назначать номера нескольким интерфейсам на составном устройстве?

Windows рассматривает USB-устройства с несколькими интерфейсами в первой конфигурации как составные устройства.

Для Windows XP с пакетом обновления 1 (SP1) и более ранних версий Windows:

  • Номера интерфейсов должны быть отсчитываются от нуля.
  • Номера интерфейсов должны быть последовательными и увеличиваться.

Для Windows XP с пакетом обновления 2 (SP2) и более поздних версий Windows номера интерфейсов должны только увеличиваться, а не последовательно.

Альтернативные параметры интерфейса должны быть назначены следующим образом для всех версий Windows:

  • Значение по умолчанию для интерфейса всегда равно нулю альтернативного параметра.
  • Дополнительные альтернативные номера параметров должны быть последовательными и увеличиваться.

Дополнительные сведения об альтернативных параметрах см. в разделе 9.6.5 спецификации USB 2.0.

Каковы основные ограничения, налагаемые Usbccgp.sys?

Usbccgp.sys поддерживает составные устройства для:

  • Windows Me
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008

Хотя в этих и более поздних версиях Windows все еще можно загрузить Usbhub.sys в качестве родительского драйвера для составного устройства, корпорация Майкрософт не рекомендует его, так как это может привести к ошибкам совместимости оборудования. Вместо этого следует использовать Usbccgp.sys .

Чтобы убедиться, что вы загружаете правильный драйвер для составного устройства, используйте директивы Include и Needs в INF-файлах следующим образом:

Include = USB.INF
Needs = Composite.Dev

Ниже перечислены основные ограничения, накладываемые на аппаратные устройства и драйверы Usbccgp.sys .

  • Usbccgp поддерживает только конфигурацию по умолчанию, конфигурацию 0.

  • Usbccgp не поддерживает выборочную приостановку в Windows XP и Windows Server 2003. Эта функция поддерживается только в Windows Vista и более поздних версиях Windows. Примечание Usbccgp поддерживает выборочную приостановку в Windows XP с пакетом обновления 1 (SP1) и более поздних версиях Windows XP, но с ограниченными возможностями. Для этих версий Windows составное устройство помещается в режим выборочной приостановки только в том случае, если каждая дочерняя функция устройства имеет ожидающий бездействующий IRP. Usbccgp не поддерживает выборочную приостановку в Windows XP RTM

  • Usbccgp поддерживает дескриптор ассоциации интерфейса (IAD) только в Windows XP с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях Windows.

  • Usbccgp поддерживает неконсекутивные номера интерфейсов только в Windows XP с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях Windows.

Разделы справки включить трассировку отладки для двоичных файлов ядра USB?

Поддерживает ли Windows дескрипторы ассоциации интерфейсов?

Да. В оповещении об изменениях (ECN) дескриптора ассоциации интерфейса USB 2.0 (IAD) появился новый стандартный метод для описания группировки интерфейсов и их альтернативных параметров в функции. IAD можно использовать для определения двух или более последовательных интерфейсов и альтернативных параметров в одной функции.

В настоящее время корпорация Майкрософт работает с IHV для разработки устройств, поддерживающих IAD. Поддержка IAD поддерживается в следующих операционных системах:

  • Windows XP с пакетом обновления 2 (SP2) и более поздних версий
  • Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версий
  • Windows Vista

Обрабатывает ли стек USB связанные многомерные списки в URB?

Эта функция поддерживается стеком драйверов USB 3.0, который входит в состав Windows.

Может ли драйвер иметь несколько URB в IRP?

Нет. Эта функция не поддерживается USB-стеком, который входит в состав Windows.

Поддерживает ли Windows составные USB-концентраторы?

Составное USB-устройство, также называемое многофункциональным USB-устройством, предоставляет несколько функций, каждая из которых может рассматриваться как независимое устройство. Система загружает универсальный родительский драйвер USB ,Usbccgp.sys, чтобы служить родительским драйвером для функций устройства. Универсальный родительский драйвер USB перечисляет функции составного устройства, как если бы они были отдельными USB-устройствами, а затем создает PDO и создает стек устройств для каждой функции.

Составное USB-устройство не может предоставлять функцию, которая выступает в качестве концентратора. Windows не перечисляет такие концентраторы должным образом, и попытка установить устройство может вызвать сбой системы.