- Overview of Microsoft-provided USB drivers
- Microsoft-provided USB drivers for controllers and hubs
- Other Microsoft-provided USB drivers
- Microsoft-provided USB device class drivers
- Общие сведения о поддержке USB и двойной роли Overview of USB Support and Dual Role
- Архитектура функции USB в Windows 10 IoT базовая Architecture of USB Function in Windows 10 IoT Core
- Компоненты, которые изготовители оборудования должны предоставить Components OEMs have to supply
- Поддержка изготовителей оборудования для обеих сторон OEMs support for both sides
- Поддержка со стороны устройства Supporting from the device side
Overview of Microsoft-provided USB drivers
This topics in this section describe the class drivers, generic client driver, and the parent composite driver that are provided by Microsoft.
Microsoft-provided USB drivers for controllers and hubs
Microsoft provides these set of drivers:
- For USB host controllers and hubs. For more information, see USB host-side drivers in Windows. You can develop a custom host controller driver that communicates with the USB host controller extension (UCX) driver. For more information, see Developing Windows drivers for USB host controllers.
- For handling common function logic for USB devices. For more information, see USB device-side drivers in Windows.
- For supporting Type-C connectors. For more information, see USB connector manager class extension (UcmCx).
Other Microsoft-provided USB drivers
Device setup class | Microsoft-provided driver and INF | Windows support | Description |
---|---|---|---|
USB | Usbccgp.sys is a parent driver for composite devices that supports multiple functions. For more information, see USB Generic Parent Driver (Usbccgp.sys). | ||
Biometric | |||
Media Transfer Protocol Devices | Wpdusb.sys (Obsolete) | Winusb.sys can be used as the USB device’s function driver instead of implementing a driver. See WinUSB. |
Microsoft-provided USB device class drivers
Microsoft provides drivers for several USB device classes approved by USB-IF. These drivers and their installation files are included in Windows. They are available in the \Windows\System32\DriverStore\FileRepository folder.
Общие сведения о поддержке USB и двойной роли Overview of USB Support and Dual Role
Универсальная последовательная шина (USB) предоставляет расширяемый интерфейс последовательного подключения с возможностью Plug and Play горячей замены, который обеспечивает стандартное, экономичное подключение для периферийных устройств, таких как клавиатуры, мыши, джойстики, принтеры, сканеры, устройства хранения, модемы и видеоконференции. A Universal Serial Bus (USB) provides an expandable, hot-pluggable Plug and Play serial interface that ensures a standard, low-cost connection for peripheral devices such as keyboards, mice, joysticks, printers, scanners, storage devices, modems, and video conferencing cameras.
Когда речь идет о USB-устройствах, стек функций USB ссылается на группу драйверов, которые перечисляются и загружаются диспетчером Plug and Play, а составное USB-устройство может поддерживать несколько интерфейсов в одной конфигурации. When we talk about USB devices, the USB function stack refers to a group of drivers that are enumerated and loaded by the Plug and Play Manager, and a composite USB device can support multiple interfaces in a single configuration. Хотя большая часть того, что мы говорим в этой статье, относится к двойной роли для USB 2,0, которая чаще известна как USB-Go или USB OTG или OTG, также полезно знать о USB 3,0 и о том, как он отличается от USB 2,0. While most of what we talk about in this article relates to the dual role for USB 2.0, more commonly known as USB On-The-Go or USB OTG or OTG, it is also helpful to know about USB 3.0 and how it differs from USB 2.0. USB-группа OTG определяет две роли для устройств: OTG A-Device и OTG B-Device, указывая, какая сторона предоставляет доступ к ссылке и что изначально является узлом. The USB OTG defines two roles for devices: OTG A-device and OTG B-device, specifying which side supplies power to the link and which is the host initially. Так как каждый контроллер группы OTG поддерживает обе роли, они часто называются контроллерами с двумя ролями, а не «контроллерами группы OTG». Since every OTG controller supports both roles, they are often called «Dual-Role» controllers rather than «OTG controllers.» USB 3,0, с другой стороны, может делать устройства как на узлах, так и на периферийных устройствах. USB 3.0, on the other hand, can make devices into either hosts or peripherals. Некоторые устройства могут принимать любую роль в зависимости от того, какой тип обнаруживается на другом конце. Some devices can take either role depending on what kind is detected on the other end. Эти типы портов называются двойными ролями данных (ДРД). These types of ports are called Dual-Role-Data (DRD). Когда два таких устройства подключены, роли назначаются случайным образом, но переключение можно выполнить с любого конца. When two such devices are connected, the roles are randomly assigned but a swap can be commanded from either end.
Архитектура функции USB в Windows 10 IoT базовая Architecture of USB Function in Windows 10 IoT Core
Если платформа IoT Windows 10 выступает в качестве устройства USB, она будет использовать одну из нескольких конфигураций. When the Windows 10 IoT platform acts as USB device, it will use one of several configurations. Каждая конфигурация имеет один или несколько USB-интерфейсов. Each configuration has one or more USB interfaces. Чтобы обеспечить правильную поддержку USB OTG в Windows 10 IoT, необходимо принять во внимание несколько вещей. To properly support USB OTG on Windows 10 IoT, several things need to be taken care of.
Компоненты, которые изготовители оборудования должны предоставить Components OEMs have to supply
Изготовителям оборудования необходимо предоставлять компоненты на обеих сторонах — для USB-устройства и, возможно, на стороне узла USB. OEMs need to supply components on both sides – for the USB device-side and possibly for the USB host-side.
Поддержка изготовителей оборудования для обеих сторон OEMs support for both sides
Каждое USB-устройство имеет уникальные идентификаторы VID и PID, которые их обозначают. Every USB device has unique VID and PID, which identify it. Изготовитель вычислительной техники, как и производитель USB-устройства Windows IoT, должен предоставить их. An OEM, as the manufacturer of a Windows IoT-based USB device, needs to supply those. Поставщики вычислительной техники могут применить к консорциуму USB и получить идентификаторы VID своей компании (если они еще не установлены), а затем выбрать PID, который будет уникальным для этого продукта. OEMs can apply to the USB Consortium and obtain their company VID (if they don’t have one already) and then choose a PID that will be unique for that product. Когда Windows 10 IoT с УСБФН-функциональностью подключена к компьютеру, он будет работать как USB-устройство (из любого набора функций для выбора в myUSBFN.sys) с такими «VID_nnn» и «PID_NNN». When Windows 10 IoT with USBFN functionality is connected to a PC it will act as USB device (of whatever functionality to choose as set in myUSBFN.sys), with those «VID_nnn» and «PID_NNN». Эта комбинация VID и PID используется основным компьютером для поиска подходящих драйверов для загрузки (myUSB.sys). This VID and PID combination is then used by the host PC to find the appropriate drivers to load (myUSB.sys).
Поддержка со стороны устройства Supporting from the device side
Функции, включаемые в ФФУ для создания образа с включенным УСБФН Features to include in FFU for image generation with USBFN enabled
- Образ IoT должен содержать необходимые пакеты, а именно ufx01000.sys и usbfnclx.sys. The IoT image must have the necessary packages in it, namely ufx01000.sys and usbfnclx.sys. Оба они поставляются со следующим пакетом Microsoft-IoTUAP-USBFN-Class-Extension-Package.cab . They both come with the following package Microsoft-IoTUAP-USBFN-Class-Extension-Package.cab . Изготовители оборудования должны использовать соответствующий тег «Feature» в своем XML-файле, в котором перечислены все компоненты, включенные в ФФУ. OEMs must use a proper «feature» tag in their XML file, which lists all features included in the FFU. Например, в файле BoardTestOEMInput.xml в разделе «компоненты» будет включена следующая запись IOT_USBFN_CLASS_EXTENSION . For example, in the BoardTestOEMInput.xml file there will be the following entry IOT_USBFN_CLASS_EXTENSION included under features section.
Драйвер переключения ролей USB USB Role Switching driver
- Для USB OTG изготовители оборудования должны предоставить правильную запись таблицы ACPI (мйотгакпи) для драйвера для переключения ролей USB и самого драйвера (* myURS.sys). For the USB OTG, OEMs have to supply the correct ACPI table entry (myOTGacpi) for the USB role-switching driver and the driver itself (*myURS.sys).
Драйвер контроллера функции USB USB Function Controller Driver
- Это зависит от оборудования, используемого изготовителями оборудования. This depends on the hardware used by OEMs. Корпорация Майкрософт предоставляет драйверы контроллера-функции USB для двух популярных наборов микросхем OTG USB — Синопсис и Чипидеа. Microsoft supplies USB Function Controller drivers for two popular USB OTG chipsets — Synopsys and ChipIdea.
- Если изготовитель оборудования решил использовать другой набор микросхем группы USB, изготовитель оборудования должен предоставить собственное аппаратное обеспечение контроллера-функции USB (myfunctioncontroller.sys). If an OEM chooses to use another USB OTG chipset, then the OEM must supply their own USB function controller hardware (myfunctioncontroller.sys).
Драйверы классов функций USB USB Function Class drivers
- Необходимо указать по меньшей мере один драйвер класса функции USB. At least one USB function class driver must be supplied.
- Этот драйвер реализует определенные функции USB-устройств. This driver implements specific USB device functionality. Он определяет, как будет выглядеть устройство на стороне узла, а также то, что оно будет делать. It determines what the device will appear as on the host side as well as what it will do. Например, он может отображаться как устройство с последовательным подключением или как запоминающее устройство, либо полностью настраиваемое устройство типа (myUSBFN.sys). For example, it may appear as a serial communications device or as a mass storage device or a completely custom type device (myUSBFN.sys).
Настройка устройства USB-функции Configuring USB Function Device
- Если платформа IoT находится в режиме USB-устройства, она может действовать в одной или нескольких конфигурациях. When the IoT platform is in USB device mode, it can operate under one or more configurations. Каждая используемая конфигурация должна быть добавлена и иметь указанные свойства. Each configuration in use must be added and have its properties specified.
Общие свойства Common Properties
- Существуют общие свойства для всех конфигураций USB-функций платформы IoT. There are common properties for all USB function configurations of the IoT platform. В конечном счете изготовителям оборудования необходимо указать стандартные записи дескрипторов USB, такие как VID, PID, Девицекласс, Девицепротокол, строка производителя, серийный номер и т. д. It is ultimately up to the OEM to specify standard USB descriptor entries such as VID, PID, DeviceClass, DeviceProtocol, Manufacturer string, serial number, etc.
- Эти общие свойства задаются в реестре в следующем расположении: HKLM\System\ControlSet001\Control\USBFN\default These common properties are set in registry in the following location: HKLM\System\ControlSet001\Control\USBFN\default
Приведенные выше значения предназначены только для демонстрационных целей и не могут использоваться в любом продукте. The values above are for demonstration purposes only and cannot be used in any product. Изготовитель оборудования должен заменить эти поля заполнителей фактическими значениями в каждой записи выше. The OEM must replace these placeholder fields with actual values in each entry above.
Для свойств конфигурации Per configuration properties
Конфигурации хранятся в реестре в следующем разделе: HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations Configurations are stored in a registry under the following key: HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations
По умолчанию используется пустая Конфигурация функции USB по умолчанию, включенная в ФФУ, как указано в: HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations\default By default, there is an empty default USB function configuration included in the FFU, as set in: HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations\default
Эта пустая конфигурация по умолчанию приводит к отображению платформы Интернета вещей в виде устройства Windows IoT, для которого не установлен драйвер на стороне узла. This empty default configuration results in the IoT platform appearing as a Windows IoT device for which there is no driver on the host side installed.
В каждой конфигурации должны быть указаны определенные свойства, например список интерфейсов. Each configuration must specify certain properties, such as the Interface List. Платформа IoT может действовать как USB-устройство с разными конфигурациями, Сурса определенными интерфейсами USB, которые предоставляются с USB-устройства на USB-узел. The IoT platform can operate as a USB device with different configurations, whic hare defined by USB interfaces that are exposed from USB device to USB host.
Сейчас выбранная конфигурация будет действовать при подключении к горячему USB-порту: HKLM\SYSTEM\ControlSet001\Control\USBFN Currently, the selected configuration is the one that will be in effect when connecting to the USB hot: HKLM\SYSTEM\ControlSet001\Control\USBFN
Примеры конфигураций Examples of configurations
Отдельная конфигурация Single configuration
- Должен содержать хотя бы один интерфейс Must contain at least one interface
- Может быть конфигурацией по умолчанию Can be a default configuration
- При подключении к ПК платформа IoT будет отображаться как USB-устройство такого типа (например, модем или хранилище). When connected to a PC, the IoT platform will appear as that type of USB device (e.g. modem or storage).
- HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations\default , InterfaceList = «MODEM\0MTP» HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations\default , InterfaceList = «MODEM\0MTP»
Составная конфигурация Composite configuration
- Содержит список интерфейсов с дополнительными параметрами Contains a list of interfaces with additional parameters
- При подключении к ПК платформа IoT будет отображаться как составное USB-устройство с несколькими единицами (например, устройство MTP, последовательное устройство, настраиваемое устройство). When connected to a PC, the IoT platform will appear as a composite USB device with multiple units in it (i.e. MTP device, serial device, custom device).
- HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations\mycfg , InterfaceList = «MODEM\0MTP» HKLM\SYSTEM\ControlSet001\Control\USBFN\Configurations\mycfg , InterfaceList = «MODEM\0MTP»
Интерфейсы УСБФН перечисляются в реестре в следующем разделе: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\USBFN\Interfaces USBFN Interfaces are enumerated in registry under the following key: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\USBFN\Interfaces
Каждая запись интерфейса USB должна содержать значение дескриптора интерфейса и GUID интерфейса. Each USB interface entry must contain an interface descriptor value and an interface GUID.