天翼云全部知识文档专栏是天翼云为开发者提供的互联网技术内容分享平台。内容涵盖云端实践,云计算,软件开发,存储,服务器,数据库,大数据,人工智能,物联网,知识文档相关内容资讯。在这里其他开发者们学习交流,共同成长。
在 USB 2.0 和更早版本的设备中,批量端点可以通过该端点发送或接收单个数据流。 在 USB 3.0 设备中,批量端点能够通过该端点发送和接收多个数据流。
在不同的模型下,USB控制传输会有不同的特点,但是任何控制传输的目标都始终是默认端点。 接收者是设备的实体,其信息(描述符、状态等)是主机感兴趣的。请求可进一步分为:配置请求、功能请求和状态请求。
开始使用连续读取器之前,必须在 IPnpCallbackHardware::OnPrepareHardware 方法的 实现中配置读取器 。
每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。
如果 USB 驱动程序需要用户模式下不可用的功能或资源,则应提供 KMDF 函数驱动程序。 KMDF 驱动程序通过在 KMDF 初始化结构中设置相关值,然后提供适当的回调函数来实现选择性挂起。 KMDF 处理与较低驱动程序通信以挂起和恢复设备的详细信息。
传统的 USB 连接使用两端都有 USB A 和 USB B 接头的电缆。 USB A 连接器始终插入主机端,USB B 连接器连接功能端,该功能端是手机) 或外设 (鼠标、键盘) 的设备
UCX 执行根中心管理。 它模拟和管理虚拟控制与中断端点。 当主控制器驱动程序创建根中心对象时,UCX 会创建这些虚拟端点。
Windows 操作系统中支持开发通用串行总线 (USB) 功能控制器驱动程序,该驱动程序与 Microsoft 提供的 USB 功能控制器扩展 (UFX) 进行通信。
下面是一个有关如何使用 USB ETW 和 Netmon 对 Windows 无法识别的 USB 设备进行故障排除的示例。
USB 函数类扩展 (UFX) 使用 WDF 对象功能来定义这些特定于 USB 的 UFX 对象。
通用串行总线 (USB) 3.0 规范定义了一项称为 设备挂起的新功能。 该功能使复合设备的单个功能能够独立于其他功能进入低功耗状态。 考虑一个复合设备,它为键盘定义一个设备,为鼠标定义另一个设备。
当 UDE 类扩展收到将设备发送到低功率状态或将其恢复工作状态的请求时,UDE 类扩展将调用客户端驱动程序的回调函数。 支持唤醒的 USB 设备需要这些回调函数。
USB 多功能设备的驱动程序(称为复合驱动程序)可以向基础 USB 驱动程序堆栈注册和注销复合设备。 Microsoft 提供的驱动程序(Usbccgp.sys)是由 Windows 加载的默认复合驱动程序。 本文中的过程适用于替换Usbccgp.sys的基于 WDM的自定义 Windows 驱动程序模型 。
Windows 操作系统中 (UDE) 支持 USB 模拟设备,用于开发模拟通用串行总线 (USB) 主机控制器驱动程序和连接的虚拟 USB 设备。 这两个组件组合成单个 KMDF 驱动程序,该驱动程序可以与 Microsoft 提供的 USB 设备模拟类扩展 (UdeCx) 通信。
USB 客户端驱动程序可以获取对USB总线驱动程序接口的引用,并使用它来访问总线驱动程序例程,而不是使用 I/O 请求数据包 (IRP) 机制。
如果 USB Type-C 硬件实现 USB Type-C 或电源传送 (PD) 物理层,但未实现供电所需的状态机,则需要编写 USB Type-C 端口控制器驱动程序。
可以使用 Microsoft 网络监视器(也称为 Netmon)查看 USB ETW 事件跟踪。 Netmon 不会自动分析跟踪。 它需要 USB ETW 分析程序。 USB ETW 分析程序是用网络监视器分析程序语言 (NPL) 编写的文本文件,用于描述 USB ETW 事件跟踪的结构。 分析程序还定义 USB 特定的列和筛选器。 这些分析程序使 Netmon 成为分析 USB ETW 跟踪的最佳工具。
如果 USB Type-C 系统未实现 PD 状态机,或者它实现了状态机,但不支持通过非 ACPI 传输 UCSI,则需要为连接器编写驱动程序。 如果存在,可以加载 Microsoft 提供的 UCSI 驱动程序。
Windows 事件跟踪(ETW)是操作系统提供的通用高速跟踪设施。 它使用在内核中实现的缓冲和日志记录机制,为用户模式应用程序和内核模式设备驱动程序引发的事件提供跟踪机制。
USB 驱动程序堆栈 (2.0 和 3.0) 是 ETW 事件跟踪提供程序。 在 Windows 7 中,从 USB 驱动程序堆栈捕获事件跟踪时,可以从其他提供程序(如其他驱动程序和应用程序)捕获跟踪。 然后,可以读取合并的日志 (假设已为提供程序的事件跟踪) 创建了 Netmon 分析程序。
2023-04-18 14:15:05
2023-04-18 14:14:13
2023-03-29 10:07:52
2023-04-24 11:27:05
2023-03-20 08:19:07
2023-04-28 02:38:44