Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте usb-драйвер (Usbser.sys) корпорации Майкрософт для устройств управления данными и коммуникациями (CDC). По возможности используйте драйверы, включенные в Windows.
Внимание
Эта статья предназначена для производителей устройств управления CDC. Если у вас возникли проблемы с USB, см. статью "Устранение проблем с USB-C в Windows"
Usbser.sys реализуется с помощью Driver FrameworkKernel-Mode. Драйвер поддерживает функцию Plug and Play, а также функции управления питанием, такие как выборочная приостановка USB.
Приложения универсальной платформы Windows (UWP) могут использовать API, предоставляемые пространством имен Windows.Devices.SerialCommunication , что позволяет приложениям взаимодействовать с устройствами CDC.
установка Usbser.sys
Загрузите встроенный драйвер (Usbser.sys) корпорации Майкрософт для взаимодействия и устройства управления CDC.
Примечание.
Если вы пытаетесь установить драйвер класса USB-устройств, включенный в Windows, вам не нужно скачать драйвер. Windows автоматически устанавливает эти драйверы. Если Windows не устанавливает драйвер, обратитесь к изготовителю устройства. Список драйверов классов USB-устройств, включенных в Windows, см. в разделе драйверов классов USB-устройств, включенных в Windows.
Usbser.inf находится в каталоге %Systemroot%\INF
. Этот файл сведений о настройке загружает Usbser.sys в виде функционального объекта устройства (FDO) в стеке устройств. Если ваше устройство относится к классу коммуникационных устройств и устройств управления CDC, Usbser.sys загружается автоматически. Вам не нужно писать собственный INF-файл, чтобы ссылаться на драйвер. Windows загружает драйвер на основе совместимого идентификатора, аналогично другим драйверам класса USB-устройств, включенным в Windows.
USB\Class_02
USB\Class_02&SubClass_02
Чтобы загрузить Usbser.sys автоматически, задайте для кода класса значение 02 и подклассовый код равным 02 в дескрипторе устройства. При таком подходе вам не нужно распространять INF-файлы для устройства, так как в системе используется usbser.inf. Дополнительные сведения см. в определениях классов для устройств коммуникации 1.2.
Если устройство задает код класса 02, но код подкласса, отличный от 02, Usbser.sys не загружается автоматически. Менеджер самонастраивающийся пытается найти водителя. Если Windows не находит подходящий драйвер, устройство может не загрузить драйвер. Возможно, вам потребуется загрузить собственный драйвер или написать INF-файл, ссылающийся на другой встроенный драйвер.
Если устройство задает коды классов и подклассов 02 и хотите загрузить другой драйвер вместо Usbser.sys, напишите INF-файл. В INF-файле укажите идентификатор оборудования устройства и драйвер для установки.
Настройка выборочной приостановки для Usbser.sys
Usbser.sys поддерживает выборочную приостановку USB. Этот драйвер позволяет подключенному устройству USB-to-serial ввести низкое состояние питания, если оно не используется, а система остается в состоянии S0. При возобновлении связи с устройством устройство покидает состояние приостановки и возобновляет рабочее состояние. Эта функция отключена по умолчанию, но ее можно включить и настроить, задав запись IdleUsbSelectiveSuspendPolicy в этом разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<hardware id>\<instance id>\Device Parameters
Чтобы настроить функции управления питанием Usbser.sys, задайте для параметра IdleUsbSelectiveSuspendPolicy значение:
Ценность | Поведение |
---|---|
0x00000001 |
Введите выборочную приостановку при простое, то есть при отсутствии активных передач данных на устройство или с устройства. |
0x00000000 |
Активируйте режим выборочного приостановления только в случае отсутствия открытых дескрипторов устройства. |
Добавьте эту запись одним из двух способов:
Напишите INF-файл, ссылающийся на inf-файл установки, и добавьте запись реестра в HW. Раздел AddReg .
Опишите запись реестра в дескриптор компонента ОС расширенных свойств. Добавьте раздел пользовательского свойства, который задает поле bPropertyName строке Юникода:
IdleUsbSelectiveSuspendPolicy
Задайте для wPropertyNameLength значение 62 байт. Задайте полю bPropertyData значение0x00000001
или0x00000000
. Значения свойств хранятся в виде 32-разрядных целых чисел.Дополнительные сведения см. в разделе "Дескрипторы ОС Майкрософт".
Разработка приложений Windows для устройства USB CDC
Приложение Windows отправляет запросы наUsbser.sys с помощью пространства имен Windows.Devices.SerialCommunication . Пространство имен определяет классы среды выполнения Windows, которые взаимодействуют с устройством USB CDC через последовательный порт или абстракцию последовательного порта. Классы позволяют обнаруживать последовательные устройства, считывать и записывать данные, а также управлять свойствами, специфичными для последовательного интерфейса, такими как управление потоком, настройка скорости передачи данных и состояния сигнала.