USB 串行驱动程序 (Usbser.sys)

您所在的位置:网站首页 usb转换器驱动安装不了 USB 串行驱动程序 (Usbser.sys)

USB 串行驱动程序 (Usbser.sys)

2024-07-11 10:15| 来源: 网络整理| 查看: 265

USB 串行驱动程序 (Usbser.sys) 项目01/18/2024

重要

本主题面向程序员。 如果你是遇到 USB 问题的客户,请参阅排除常见 USB 问题

将 Microsoft 提供的 USB 驱动程序 (Usbser.sys) 用于通信和 CDC 控制设备。 Microsoft 鼓励你尽可能使用 Windows 附带的驱动程序。

支持的版本 Windows 11 Windows 10 适用于 CDC 控制设备的设备制造商

在 Windows 10 中,驱动程序已使用内核模式驱动程序框架重写,从而提高了驱动程序的整体稳定性。

改进了驱动程序即插即用和电源管理。 添加了电源管理功能,如 USB 选择性挂起。

此外,UWP 应用程序现在可以使用 Windows.Devices.SerialCommunication 命名空间提供的 API,这些 API 允许应用与这些设备通信。

Usbser.sys 安装

为通信和 CDC 控制设备加载 Microsoft 提供的内置驱动程序 (Usbser.sys) 。

注意

如果你尝试安装 Windows 中包含的 USB 设备类驱动程序,则不需要下载该驱动程序。 它们将自动进行安装。 如果未自动安装,请与设备制造商联系。 有关包含在 Windows 中的 USB 设备类驱动程序的列表,请参见包含在 Windows 中的 USB 设备类驱动程序。

从 Windows 10 开始,Usbser.inf 已添加到 %Systemroot%\INF 目录,该目录 Usbser.sys 作为功能设备对象加载 (设备堆栈中的 FDO) 。 如果设备属于通信和 CDC 控制设备类,则会自动加载 Usbser.sys 。 无需编写自己的 INF 即可引用驱动程序。 驱动程序是基于与包含在 Windows 中的其他 USB 设备类驱动程序相似的兼容 ID 匹配来加载的。

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,指定要安装的设备的硬件 ID 和驱动程序。 例如,查看示例驱动程序中包含的 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”部分添加注册表项。

在扩展属性 OS 功能描述符中描述该注册表项。 添加自定义属性,将“bPropertyName”字段设置为 Unicode 字符串“IdleUsbSelectiveSuspendPolicy”,将“wPropertyNameLength”设置为 62 。 将“bPropertyData”字段设置为“0x00000001”或“0x00000000”。 属性值存储为小字节序 32 位整数。

有关详细信息,请参阅 Microsoft OS 描述符。

为 USB CDC 设备开发 Windows 应用程序

从 Windows 10 开始,Windows 应用可以使用 Windows.Devices.SerialCommunication 命名空间将请求发送到 Usbser.sys。 它定义了 Windows 运行时类,这些类可用于通过串行端口或某个串行端口抽象与 USB CDC 设备通信。 这些类提供了发现此类串行设备、读写数据和控制流控制的串行特定属性(如设置波特率、信号状态)的功能。

相关主题 包含在 Windows 中的 USB 设备类驱动程序


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3