- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows动程序模型Windows新特性
Windows 驱动程序模型: Windows 7 新特性
Eliyas Yakub
首席开发经理
US-Device Storage Technologies@Dev
议程
WDF 1.9支持的平台
用户模式驱动架构
UMDF 1.9 新特性
新的示例
内核模式驱动架构
KMDF 1.9新特性
新的示例
WDF在哪里?
附加资源和立即行动
之前的WDF 版本
KMDF 应用
应用效果很好
微软提供的驱动: ~50
第三方提供的驱动: ~300
UMDF 应用
应用正在增长
方向是正确的
更多的复杂堆栈
更多的核心使用场景
UMDF 1.9的变化
电源管理改进
问题: UMDF 驱动在空闲状态下不能自动掉电,被使用唤醒,或者唤醒系统
使用场景: 非USB总线驱动,USB驱动有着比WinUSB更加复杂的空闲和唤醒逻辑
解决方案: UMDF 1.9 支持空闲检测,支持Sx 到S0状态苏醒
IWDFDevice2::AssignS0IdleSettings()
IWDFDevice2::AssignSxWakeSettings()
IWDFDevice2::StopIdle() and ResumeIdle()
同WinUSB协同工作支持选择性挂起
USB 连续读取器
问题: 从USB 管道手动读取多个信息包是困难的
使用场景: USB驱动从整块或者不连续的管道读取流信息
解决方案: 增加USB连续读取器以支持UMDF
IWDFUsbTargetPipe2::ConfigureContinuousReader() to configure
Callback interfaces are IUsbTargetPipeContinuousReaderCallbackReadComplete and IUsbTargetPipeContinuousReaderCallbackReadersFailed
错误处理行为稍有不同
UMDF 在错误发生时只做通道重置,而不是设备重置(WinUSB 的限制)
请查看Fx2 驱动示例
虚拟串口支持
问题: 不能建立类似串口的UMDF驱动
使用场景: 映射一个新的设备给需要串口的客户端
解决方案: 添加一个虚拟串口示例,解决我们遇到的问题
新的UMDF支持
IWDFDevice2::CreateSymbolicLinkWithReferenceString()
允许一个驱动列举多个端口以消除 \\.\COM1 和\\.\COM2 之间的链接
支持IRP_MJ_QUERY_INFORMATION, SET_INFORMATION 和FLUSH_BUFFERS
新的 WDF_REQUEST_TYPEs 通过配置可以支持查询反馈和通过默认I/O接收
扩展了为遗留设备配置的注册表入口
扩展的注册表入口和写入权限
问题: UMDF 驱动以本地服务的方式运行所以对系统储存档的很多部分不能写入
属性存储接口只允许设备的硬件标识写入
使用场景
驱动需要在他们的软件或者设备接口标识中读写数据
像串口驱动需要在遗留设备硬件表中写入数据 (HKLM\HARDWARE\DEVICEMAP)
解决方案: IWDFPropertyStoreFactory 允许驱动建立属性存储接口
硬件,软件或者设备接口标识
遗留硬件表子键
直接I/O
问题: UMDF驱动的吞吐量由于缓冲复制,所以是被CPU的性能所限制的
使用场景: 驱动执行大数据量传输
解决方案: 支持直接 I/O
通过IWDFDeviceInitialize2::SetIoTypePreference()
可以允许读写和IOCTLs的独立性
在一个堆栈的驱动必须一致否则要回到老的模式 (因为直接传输增加了一个安全隐患)
缓冲请求一直都是缓冲模式
Driver 指定一个偏好, 而不是绝对切换
UMDF 将会决定每一个请求是复制还是直接映射缓冲区
DirectTransferThreshold 注册表项可以被修改 (每个设备)
只有整个页面被映射—在缓冲区开始和结束的部分页面还是被复制
支持内核模式终端
问题: UMDF 不能被放置在内核模式驱动之下或者从内核终端接收
解决方案: 驱动包可使用UmdfKernelModeClientPolicy INF 指令允许一个内核模式终端
支持
用户模式以上的驱动(在WUDFRd以上加载的驱动)
内核模块打开设备发送I/O
处理格式化的读/写/IOCTL IRPs
缓冲区必须模拟I/O manager 的存放地址—一个带有MDL的缓冲模式IOCTL不能正常工作
不支持内部IOCTLs
每个请求需要一个file-object
这种模式需要一个UM驱动在内核模式驱动之下
或者有经验的驱动开发者了解驱动的行为而且充分
您可能关注的文档
最近下载
- 大小头尺寸对照表.xlsx VIP
- 《高级钳工培训课件-(钳工工艺流程、操作技巧及其安全规范)》.ppt VIP
- 2025年辽宁省中考语文试卷(含答案解析).docx
- 车辆电工(中级工)题库复习题要点 .pdf VIP
- GBT5210-2006色漆和清漆拉开法附着力试验标准.pdf VIP
- 文化旅游产业的发展课件.pptx VIP
- 全省寄生虫病防治技能竞赛理论考试题及答案.doc VIP
- 全市寄生虫病防治技术竞赛理论考试题库及答案.docx VIP
- RBA8.0手册+程序文件+表单(格式可转换WORD).pdf VIP
- 典范英语4a Lesson3 The Camcorder课件.pptx VIP
文档评论(0)