导图社区 Windows下的USB驱动程序简单框架
Windows下的USB设备驱动开发,USB拓扑协议的读写使用步骤及开发参考。欢迎从事驱动开发的人员参考学习。
敏捷项目管理和DevOps的目标都是提高研发效能和快速交付高质量产品。敏捷项目管理是一种以人为中心的方法,以团队合作和透明度为基础,通过迭代和增量式开发来快速响应需求变化。DevOps则是一种将研发和运维紧密结合的方法,强调自动化、持续集成和快速反馈,以加速软件交付和部署的速度和质量。通过将敏捷项目管理和DevOps相结合,可以实现更高效、更灵活的研发流程,从而加速产品上市时间,提高客户满意度和企业竞争力。
PMP认证涵盖了项目管理的各个方面,包括项目计划、调度、执行、监督、控制与封闭等,可以帮助项目经理提高整个项目的成功率和质量,并为项目成员提供一致的沟通和管理方式。持有PMP认证的项目经理通常可以提供更高质量、更规范、更高效和更经济的项目管理服务,并且可以有效地协调多个项目的复杂关系,促进组织与团队的成功。
关于DeepSeek及Qwen模型部署指南,Main content: Qwen 模型部署硬件需求, DeepSeek R1模型部署硬件需求、 常见部署方法、 推荐部署框架、 输入输出需求,总结与建议等
经营人生就好比经营一家公司,要有自己的价值观和愿景,要有持续进化的理念,持续学习,持续迭代,经营好自己的人生。
哈利波特人物关系,魔法学院同学关系,主要情节人物关系,HarryPotter经典魔法名著,人物关系图。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
Windows下的USB驱动程序简单框架
USB设备读写
80%走Bulk管道
一个读/写 操作 典型示例
驱动程序
设置 IRP_MJ_READ / IRP_MJ_WRITE 派遣函数
应用程序
调用 API 进行 ReadFile / WriteFile
USB设备热插拔
IRP_MJ_PNP
来自: 即插即用管理器
IRP_MN_START_DEVICE
驱动加载并运行时
USB驱动程序对应操作
a. 获取并存储USB设备描述信息
IRP_MN_STOP_DEVICE
设备关闭前
a. 尽快结束IRP并逐个取消掉
b. 标记设备扩展当前状态为“停止”
IRP_MN_EJECT
设备正常弹出前
a. 强迫结束并取消 所有未完成的读写IRP
b. 标记设备状态为被拔掉
IRP_MN_SURPRISE_REMOVAL
设备非自然弹出
USB设备对应操作
USB设备初始化
注册标准的WDM回调(Callback)函数
大致步骤
令牌(Token)阶段已包含在内
创建URB
UsbBuildGetDescriptorRequest
关联URB至IRP
IoBuildDeviceIoControlRequest
发送URB至底层驱动程序
IoCallDriver
等待完成IRP
同步
(不做处理)
异步(STATUS_PENDING)
KeWaitForSingleObject
(背景知识)
设备堆栈
USB功能驱动(FDO)
USB物理总线驱动(PDO)
USB Host 或 USB Hub驱动
PDO完成了大部分工作, 封装了USB协议细节 并为FDO提供了标准的接口
各种描述符
端点描述符
描述处理事务(Transaction)的端点
接口描述符
描述设备提供的功能接口
配置描述符
描述设备能实现的配置方式
设备描述符
自下而上 (除端点描述符 可以为0个之外) 每一下一层 都拥有 上一层 一个至多个