天翼云软件开发,知识文档技术编程知识文档是天翼云为开发者提供的互联网技术内容分享平台。内容涵盖软件开发相关内容资讯。开发者在软件开发专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
Windows 8包括一个新的 USB 驱动程序堆栈,用于支持通用串行总线 (USB) 3.0 设备。 根据 USB 3.0 规范,新的 USB 3.0 驱动程序堆栈实现了多项新功能。
当 I/O 管理器将 I/O 请求数据包 (IRP) 传送到基于框架的驱动程序时,框架会截获 IRP
USB 驱动程序可以在堆栈中使用链接式 MDL 功能发送数据,并且USB驱动的客户端可以将传输缓冲区作为 MDL 结构链发送。
USB 选择性挂起功能允许集线器驱动程序挂起单个端口,而不会影响集线器上其他端口的操作。 USB 设备的选择性挂起在便携式计算机中特别有用,因为它有助于节省电池电量。
符合通用串行总线 (USB) 规范的 USB 设备的电源管理功能具有一组丰富而复杂的电源管理功能。 请务必了解这些功能如何与 Windows 驱动程序模型 (WDM) 交互,特别是 Microsoft Windows 如何调整标准 USB 功能以支持系统唤醒体系结构。
开始使用连续读取器之前,必须在 IPnpCallbackHardware::OnPrepareHardware 方法的 实现中配置读取器 。
本文讨论如何仔细管理 USB 带宽的指导。 每个 USB 客户端驱动程序都有责任最大程度地减少其使用的 USB 带宽,并尽快将未使用的带宽返回到可用带宽池。
客户端驱动程序可以生成 USB 请求块 (URB) 以在 USB 设备中向/从常时等量端点传输数据。虽然USB设备一向以非等时传输出名,USB提供的是一种串行数据,而非等时,但是USB仍然设计了等时传输的机制,但根据笔者的经验,等时传输也许使用1394更好一些。
每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。
在 USB 2.0 和更早版本的设备中,批量端点可以通过该端点发送或接收单个数据流。 在 USB 3.0 设备中,批量端点能够通过该端点发送和接收多个数据流。
如果 USB 驱动程序需要用户模式下不可用的功能或资源,则应提供 KMDF 函数驱动程序。 KMDF 驱动程序通过在 KMDF 初始化结构中设置相关值,然后提供适当的回调函数来实现选择性挂起。 KMDF 处理与较低驱动程序通信以挂起和恢复设备的详细信息。
在不同的模型下,USB控制传输会有不同的特点,但是任何控制传输的目标都始终是默认端点。 接收者是设备的实体,其信息(描述符、状态等)是主机感兴趣的。请求可进一步分为:配置请求、功能请求和状态请求。
UCX 执行根中心管理。 它模拟和管理虚拟控制与中断端点。 当主控制器驱动程序创建根中心对象时,UCX 会创建这些虚拟端点。
Windows 操作系统中支持开发通用串行总线 (USB) 功能控制器驱动程序,该驱动程序与 Microsoft 提供的 USB 功能控制器扩展 (UFX) 进行通信。
USB 函数类扩展 (UFX) 使用 WDF 对象功能来定义这些特定于 USB 的 UFX 对象。
传统的 USB 连接使用两端都有 USB A 和 USB B 接头的电缆。 USB A 连接器始终插入主机端,USB B 连接器连接功能端,该功能端是手机) 或外设 (鼠标、键盘) 的设备
当 UDE 类扩展收到将设备发送到低功率状态或将其恢复工作状态的请求时,UDE 类扩展将调用客户端驱动程序的回调函数。 支持唤醒的 USB 设备需要这些回调函数。
USB 多功能设备的驱动程序(称为复合驱动程序)可以向基础 USB 驱动程序堆栈注册和注销复合设备。 Microsoft 提供的驱动程序(Usbccgp.sys)是由 Windows 加载的默认复合驱动程序。 本文中的过程适用于替换Usbccgp.sys的基于 WDM的自定义 Windows 驱动程序模型 。
通用串行总线 (USB) 3.0 规范定义了一项称为 设备挂起的新功能。 该功能使复合设备的单个功能能够独立于其他功能进入低功耗状态。 考虑一个复合设备,它为键盘定义一个设备,为鼠标定义另一个设备。
下面是一个有关如何使用 USB ETW 和 Netmon 对 Windows 无法识别的 USB 设备进行故障排除的示例。
2023-04-18 14:15:05
2023-04-18 14:14:13
2023-04-19 09:23:13
2023-04-27 08:00:00
2023-04-18 14:15:05
2023-03-16 07:49:58