天翼云驱动开发知识文档专栏是天翼云为开发者提供的互联网技术内容平台。内容涵盖驱动开发相关内容资讯。开发者在驱动开发专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
在USB的通讯协议中,规定发起连接的一方为主机(Host),接受连接的一方为设备,这可以用U盘插入电脑举个例子,当U盘插入电脑后,电脑这边主动发起查询和枚举,U盘被动响应查询和数据存取。
USB 设备以一系列称为 USB 配置的接口的形式公开其功能。 每个接口由一个或多个备用设置组成,每个备用设置由一组端点组成。
特殊文件 包括分页文件、转储文件和休眠文件。
通用串行总线 (USB) 设备通过配置、接口、备用设置和终结点来定义其功能和功能,下面提供这些概念的高级概述。
这部分的技术是一些零散的记录知识点,它们主要是在WDF框架中特定于KMDF的部分。
当 I/O 管理器将 I/O 请求数据包 (IRP) 传送到基于框架的驱动程序时,框架会截获 IRP
USB 设备以一系列称为 USB 配置的接口的形式公开其功能。 每个接口由一个或多个备用设置组成,每个备用设置由一组终结点组成。 设备必须至少提供一个配置,但它可以提供多个配置,这些配置是设备可以执行的操作的互斥定义。
Windows 8包括一个新的 USB 驱动程序堆栈,用于支持通用串行总线 (USB) 3.0 设备。 根据 USB 3.0 规范,新的 USB 3.0 驱动程序堆栈实现了多项新功能。
USB 设备是通过单个端口连接到计算机的外设,例如鼠标设备和键盘。 USB 客户端驱动程序是计算机上安装的软件,该软件与硬件通信以使设备正常运行。
通用串行总线 (USB) 客户端驱动程序无法直接与其设备通信。 相反,客户端驱动程序会创建请求并将其提交到 USB 驱动程序堆栈进行处理。
在不同的模型下,USB控制传输会有不同的特点,但是任何控制传输的目标都始终是默认端点。 接收者是设备的实体,其信息(描述符、状态等)是主机感兴趣的。请求可进一步分为:配置请求、功能请求和状态请求。
USB 驱动程序可以在堆栈中使用链接式 MDL 功能发送数据,并且USB驱动的客户端可以将传输缓冲区作为 MDL 结构链发送。
本文讨论如何仔细管理 USB 带宽的指导。 每个 USB 客户端驱动程序都有责任最大程度地减少其使用的 USB 带宽,并尽快将未使用的带宽返回到可用带宽池。
符合通用串行总线 (USB) 规范的 USB 设备的电源管理功能具有一组丰富而复杂的电源管理功能。 请务必了解这些功能如何与 Windows 驱动程序模型 (WDM) 交互,特别是 Microsoft Windows 如何调整标准 USB 功能以支持系统唤醒体系结构。
在 USB 2.0 和更早版本的设备中,批量端点可以通过该端点发送或接收单个数据流。 在 USB 3.0 设备中,批量端点能够通过该端点发送和接收多个数据流。
每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。
如果 USB 驱动程序需要用户模式下不可用的功能或资源,则应提供 KMDF 函数驱动程序。 KMDF 驱动程序通过在 KMDF 初始化结构中设置相关值,然后提供适当的回调函数来实现选择性挂起。 KMDF 处理与较低驱动程序通信以挂起和恢复设备的详细信息。
开始使用连续读取器之前,必须在 IPnpCallbackHardware::OnPrepareHardware 方法的 实现中配置读取器 。
USB 选择性挂起功能允许集线器驱动程序挂起单个端口,而不会影响集线器上其他端口的操作。 USB 设备的选择性挂起在便携式计算机中特别有用,因为它有助于节省电池电量。
Windows 操作系统中支持开发通用串行总线 (USB) 功能控制器驱动程序,该驱动程序与 Microsoft 提供的 USB 功能控制器扩展 (UFX) 进行通信。
2023-05-04 09:00:09
2023-05-04 09:00:09
2024-09-10 08:20:51
2024-09-10 08:20:45
2024-09-10 08:20:57
2024-09-10 08:20:57