USB-последовательный драйвер (Usbser.sys)
Внимание
Этот раздел предназначен для программистов. Если у вас возникли проблемы с USB, см. статью "Устранение проблем с USB-C" в Windows
Используйте USB-драйвер (Usbser.sys) корпорации Майкрософт для связи и устройства управления CDC. Корпорация Майкрософт рекомендует по возможности использовать драйверы, включенные в Windows.
Поддерживаемые версии
- Windows 11
- Windows 10
Применяется к
- Производители устройств управления CDC
В Windows 10 драйвер был перезаписан с помощью платформы драйвера в режиме ядра, что повышает общую стабильность драйвера.
- Улучшены самонастраивающийся и управление питанием драйвером.
- Добавлены функции управления питанием, такие как выборочная приостановка USB.
Кроме того, приложения UWP теперь могут использовать API, предоставляемые пространством имен Windows.Devices.SerialCommunication , которые позволяют приложениям взаимодействовать с этими устройствами.
установка Usbser.sys
Загрузите встроенный драйвер (Usbser.sys) корпорации Майкрософт для взаимодействия и устройства управления CDC.
Примечание.
Если вы пытаетесь установить драйвер класса USB-устройства, включенный в Windows, вам не нужно скачать драйвер. Они устанавливаются автоматически. Если они не установлены автоматически, обратитесь к изготовителю устройства. Список драйверов класса USB-устройств, включенных в Windows, см. в разделе драйверов классов USB-устройств, включенных в Windows.
Начиная с Windows 10, usbser.inf был добавлен в каталог %Systemroot%\INF, который загружает Usbser.sys в качестве функционального объекта устройства (FDO) в стеке устройств. Если устройство принадлежит к классу устройств управления CDC, Usbser.sys загружается автоматически. Чтобы ссылаться на драйвер, вам не нужно писать собственный INF-файл. Драйвер загружается на основе совместимого идентификатора, аналогичного другим драйверам класса USB-устройств, включенным в Windows.
USB\Class_02
USB\Class_02&SubClass_02
Если вы хотите автоматически загрузить Usbser.sys, задайте для кода класса значение 02 и подкласс кода 02 в дескрипторе устройства. При таком подходе вам не требуется распространять INF-файлы для устройства, так как система использует usbser.inf. Дополнительные сведения см. в определениях классов для устройств коммуникации 1.2.
Если устройство задает код класса 02, но значение кода подкласса, отличное от 02, Usbser.sys не загружается автоматически. Менеджер самонастраивающийся пытается найти водителя. Если подходящий драйвер не найден, устройство может не загрузить драйвер. Возможно, вам придется загрузить собственный драйвер или написать INF-файл, ссылающийся на другой встроенный драйвер.
Если устройство задает коды классов и подклассов до 02, а вы хотите загрузить другой драйвер вместо Usbser.sys, необходимо написать INF-файл, указывающий идентификатор оборудования устройства и драйвер для установки. Например, просмотрите INF-файлы, включенные в пример драйверов , и найдите устройства, похожие на устройство. Сведения о разделах INF см. в разделе "Общие сведения о INF-файлах".
Настройка выборочной приостановки для Usbser.sys
Начиная с Windows 10, Usbser.sys поддерживает выборочную приостановку USB. Он позволяет подключенному USB-и последовательному устройству входить в состояние низкой мощности, если он не используется, в то время как система остается в состоянии 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 10 приложение Windows может отправлять запросы в Usbser.sys с помощью пространства имен Windows.Devices.SerialCommunication. Он определяет среда выполнения Windows классы, которые могут использовать для взаимодействия с устройством USB CDC через последовательный порт или некоторую абстракцию последовательного порта. Классы предоставляют функциональные возможности для обнаружения таких серийных устройств, чтения и записи данных, а также управления последовательным свойствами для управления потоком, таких как настройка скорости передачи данных, состояний сигнала.