Windows 驱动程序模型: Windows 7 新特性

Slides:



Advertisements
Similar presentations
Web Role 的每台虚机运行有 IIS ,用于处理 Web 请求 Worker Role 用于运行后台进程 Cloud Service 是什么? 支持多层架构的应用容器 由多个 Windows 虚拟机集群构成 集群有两种类型: Web 和 Worker Cloud Service 做什么 进行应用的自动化部署.
Advertisements

应用技术 陕西华辉科技有限公司.
泛舆情管理平台 ——助力媒体业务创新 新模式 新格局 创新盈利增长点 2/26/2017 1:59 AM 屈伟: 创始人,总裁
中国银行业前置端操作系统移植研究.
3/3/ :01 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
请点击以下链接下载WinHEC的演讲材料
借助公有云实现游戏的弹性运营 Shaun Fang (方兴) Azure开发技术顾问
Windows Hyper-V与集群共享卷
Customer Service & Support
请点击以下链接下载WinHEC的演讲材料
Eliyas Yakub 首席开发经理 US-Device & Storage
1. 设定愿景,确定业务场景 Microsoft Corporation
广东省广州市花都区教育局教研室 汤少冰 优化评估方式, 促进中学英语的教与学 广东省广州市花都区教育局教研室 汤少冰
張書源 Microsoft MVP MCT 趨勢科技 技術經理 網酷科技 資深顧問 集英信誠 資深顧問
Adam Shapiro Senior Program Manager US-Networking Core PM
Office 2013 全新功能介紹 台灣微軟 Office 大使 楊承恩 Marcus Microsoft Office
講師姓名:黃信嘉、黃振宇 職稱:微軟技術支援副理 公司名稱:台灣微軟 課程代碼:WCL305
四川省集体林权流转平台 中国西部林权交易网
全国信息技术标准化技术委员会 (SAC/TC28)工作交流
Windows 10 混合现实 Mingfei Yan 高级项目经理
Benjamin Armstrong 高级项目经理 微软
W371 如何使网络设备更好的和Windows Vista工作
MBL 340 Tablet PC SDK:在您的应用程序中使用数字墨水
資料檔案的安全性管理 羅英嘉 2007年4月.
今天很高兴能够利用Web Cast和大家讲解嵌入式XP的新增功能。
OFC 302 InfoPath2007新特性及解决方案.
最新 Windows Server 徽标 要求和计划
Windows Mobile 轻松接轨GPS
Microsoft Office SharePoint Server 2007 事件追蹤與專案管理
SOLUTIONACCELERATORS Windows Vista Hardware Assessment 1
MSG 321 统一消息架构和PBX集成.
朝雲端專業DBA邁進: 深入剖析 Windows Azure SQL Database 完整資料庫管理、雲端報表建立、建置分散式雲端資料庫
利用最新Hyper-V Replica 功能達成Hyper-V 災難備援機制
Windows Server 2008 NAP整合802.1x網路安全控管
互聯網安全資訊 助您達至更安全的網上體驗.
服務啟用、導入流程、 郵件移轉步驟簡介 Microsoft Office 12/2/2018
MBL 325 开发跨平台的 Windows Mobile应用程序
MBL 327 Windows Mobile开发中的异构系统集成
Cameron Brodeur Program Manager US-Device & Storage PM
David Edfeldt Senior Program Manager Windows Logo Program
构建 Windows TV Tuner 产业 生态环境的重要观点
微软新一代云计算 面向企业的 Office 365 客户培训大纲
1/2/ :39 PM 讀經 以弗所書 4:31-32 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
使徒行傳 21:17-23章「保羅的見證(一)」 引言 預言保羅為主的名受許多的苦難的實現
2/24/2019 5:40 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Exchange 2007 系統部署 -- 儲存預測與測試
教师课堂教学能力提升培训 ---“互联网+教育”考勤小测验 Plickers 洛阳理工学院
Microsoft SQL Server 2008 報表服務_設計
利用 ASP.NET MVC 提升您的 Web 應用程式


橫跨電腦、手機與軟體的全方位端點管控解決方案
请点击以下链接下载WinHEC的演讲材料
CON223 UDDI:服务的发现和搜索.
呂政周 精誠恆逸教育訓練處 資深講師 Windows PowerShell 呂政周 精誠恆逸教育訓練處 資深講師
使用WPF创建Windows应用和Web应用
4/30/2019 7:40 AM 約翰福音 15:9;17:20-23 加拉太書 6:1-2 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
DEV 343 VS2005超快速开发方案/EEP2006控件包.
5/4/2019 4:42 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
使徒行傳 24-26章 [ 保羅的見證(二)] 徒9:15 “  主 對 亞 拿 尼 亞 說 、 你 只 管 去 . 他 是 我 所 揀 選 的 器 皿 、 要 在 外 邦 人 和 君 王 並 以 色 列 人 面 前 、 宣 揚 我 的 名 。 ”]
TechEd /6/ :36 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Windows 徽标计划工具:综述与发展趋势
5/5/2019 7:06 PM 两跨框架梁截面配筋图的绘制 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
百万亿次超级计算机诞生记 姓名 Xiangyu Ye 职务 微软中国技术中心资深HPC顾问 公司 微软中国
5/15/2019 姓名: 公司名称: 云赛空间BP模板 Now let’s take a look at who we are, what we’re doing and why we’re doing it in China... This is an image of a technology.
DEV 343 VS2005超快速开发方案/EEP2006控件包.
MGT 213 System Management Server的昨天,今天和明天
Bob Combs Lead Program Manager Microsoft Corporation
Ron Jacobs 高级技术专员 Microsoft
Windows Workflow Foundation CON 230
Presentation transcript:

Windows 驱动程序模型: Windows 7 新特性 11/21/2018 8:25 PM Windows 驱动程序模型: Windows 7 新特性 Eliyas Yakub 首席开发经理 US-Device & Storage Technologies@Dev © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

议程 WDF 1.9支持的平台 用户模式驱动架构 内核模式驱动架构 WDF在哪里? 附加资源和立即行动 UMDF 1.9 新特性 新的示例 KMDF 1.9新特性 WDF在哪里? 附加资源和立即行动

之前的WDF 版本 KMDF UMDF v 1.9 v 1.7 v 1.5 V 1.1 v 1.0 v 1.9 v 1.7 v 1.5 In-box Windows 7 Down-level support for Windows 2000, XP, Server 2003, Vista, Server 2008 v 1.7 In-box Windows Vista SP1/Server 2008 Down-level support for Windows 2000, XP, Server 2003 & Vista Client RTM v 1.5 In-box Windows Vista Down-level support for Windows 2000, XP, Server 2003 V 1.1 Supported on Windows 2000, XP, Server 2003 v 1.0 Supported on Windows XP, Server 2003 UMDF v 1.9 In-box Win7 Down-level support for Windows XP, Server 2003, Vista, Server 2008 v 1.7 In-box Windows Vista SP1/Server 2008 Down-level support for Windows XP, Server 2003, and Vista Client RTM v 1.5 In-box Windows Vista Down-level support for Windows XP v 1.0 Release for Windows Media Player 11

KMDF 应用 应用效果很好 微软提供的驱 动: ~50 第三方提供的 驱动: ~300 v1.9 (Win7) v1.5 and v1.7 Bus Drivers: HD Audio, UMBUS, VMBUS Function Drivers: Processor, SD storage, WinUSB, Media Center IR Remote, Tablet PC Digitizer, Xbox controller Filter Drivers: Monitor, UMPass, MS Keyboard Non PnP Drivers: PEAuth v1.9 (Win7) CDROM Bluetooth 1394 UltraWide USB NDIS-WDF miniports Virtual storage bus drivers 应用效果很好 微软提供的驱 动: ~50 第三方提供的 驱动: ~300

UMDF 应用 应用正在增长 方向是正确的 更多的复杂堆栈 更多的核心使用 场景 1.0 WMP 11 Media Players 1.5 and 1.7 Vista/Server 2008 Smart-phones (WinCE & Nokia) Sideshow devices TS (device redirection) 1.9 Win7 Smartcard Readers Personal Storage Sensor Platform Biometrics Multi-Touch Input 应用正在增长 方向是正确的 更多的复杂堆栈 更多的核心使用 场景

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的性能所限制的 使用场景: 驱动执行大数据量传输 通过IWDFDeviceInitialize2::SetIoTypePreference() 可以允许读写和IOCTLs的独立性 在一个堆栈的驱动必须一致否则要回到老的模式 (因为直接传输增加了一个安全隐患) 缓冲请求一直都是缓冲模式 Driver 指定一个偏好, 而不是绝对切换 UMDF 将会决定每一个请求是复制还是直接映射缓冲区 DirectTransferThreshold 注册表项可以被修改 (每个设备) 只有整个页面被映射—在缓冲区开始和结束的部分页面还是被复制

支持内核模式终端 问题: UMDF 不能被放置在内核模式驱动之下或者从内核终端接收 解决方案: 驱动包可使用UmdfKernelModeClientPolicy INF 指令允许一个内核模式终端 支持 用户模式以上的驱动(在WUDFRd以上加载的驱动) 内核模块打开设备发送I/O 处理格式化的读/写/IOCTL IRPs 缓冲区必须模拟I/O manager 的存放地址—一个带有MDL的缓冲模式IOCTL不能正常工 作 不支持内部IOCTLs 每个请求需要一个file-object 这种模式需要一个UM驱动在内核模式驱动之下 或者有经验的驱动开发者了解驱动的行为而且充分的测试过组合的效果

新 UMDF 示例 Virtual serial sample %winddk%\src\general\ VirtualSerial WpdBasicHardwareDriver %winddk%\src\wpd WpdServiceSampleDriver WpdMultiTransportDriver USBFx2 IdleWake as PPO %winddk%\src\usb\umdfusbfx2\ fx2_driver\IdleWake USBFx2 IdleWake through WinUSB LocationAndSensors %winddk%\src

KMDF 1.9的改变

有保证的转送进程 问题: 因为WDFREQUEST对每个I/O的运行时分配在关键I/O路径 中不能使用KMDF 使用场景: 存储设备驱动 使用场景: 存储设备驱动 解决方案: 对每个I/O资源提供预配置和初始化WDFREQUESTs和其他 的能力 WdfIoQueueAssignForwardProgressPolicy(Queue, Policy) 只针对最高优先级查询– 从系统架构直接发出的I/O查询

计数查询 问题: 没办法限制从并行查询发送出来的请求数量 使用场景: 只能同时处理N个请求的设备 问题: 没办法限制从并行查询发送出来的请求数量 使用场景: 只能同时处理N个请求的设备 解决方案: 在并行查询内提供新的选择可设置请求的数量 typedef struct _WDF_IO_QUEUE_CONFIG { ULONG NumberOfPresentedRequests; } WDF_IO_QUEUE_CONFIG

队列同步 问题: 查询从设备对象继承同步范围和执行层次, 这意味 着不管他们是否需要所有的查询有着相同的限制 问题: 查询从设备对象继承同步范围和执行层次, 这意味 着不管他们是否需要所有的查询有着相同的限制 解决方案: 允许每个查询有自己的限制而且关联他们到各有的 timer, DPC, 或者work item 文件对象可以成为查询的父类

请求取消 问题: 如果IRP已经被取消WdfRequestMarkCancelable 直接调用取消流程 如果这个调用使用了锁而且取消流程也试图访问同一个锁 就会引起死锁 解决方案: 新DDI 返回STATUS_CANCELED 如果 IRP已经被取消 (Irp->Cancel 标志位被设置) 而不 是调用取消流程 WdfRequestMarkCancelableEx

转送I/O到子设备 问题: 不能从PDO查询转送请求到父FDO查询 使用场景: 基于协议设备的总线驱动从子堆栈发送I/O到父堆 栈而得到设备 USB, 1394, Bluetooth 解决方案: 新DDI允许从子设备队列转送I/O到父设备队列 WdfRequestForwardToParentDeviceIoQueue 当建立PDO时子设备必须通知系统架构 WdfPdoInitAllowForwardingRequestToParent

计时器功能 问题: 计时器回调永远在DISPATCH_LEVEL. 驱动需要加入一个work item到队 列中达到PASSIVE_LEVEL. 使用场景: 使用计时器的驱动需要存取页面代码和数据 解决方案: 在调用WdfTimerCreate时设置WdfExecutionLevelPassive 使回调 达到PASSIVE_LEVEL 限制: 只允许一个短时间计时器。不能用在周期性计时器 可合并计时器 – 新功能 通过设置Ability to specify TolerableDelay以延迟计时器的计时时间操作系统 可以合并多个过期的计时器 支持动态深度掉电和增加空闲状态电力使用效率 在Windows 7上被支持

PnP ContainerID 问题: 多功能设备对于每个功能只有一个或多个devnodes,当前没有一个机制 把这些功能绑定在一起 使用场景: 多功能设备 解决方案: 使用ContainerID为每个设备的devnodes分组 IContainerID 是唯一的用来建立单一物理设备而且对于同一个物理设备的 devnodes是一致的 总线驱动是支持多功能的而且可以分配ContainerIDs给被枚举时的子 devnodes WdfPdoInitAssignContainerID ContainerIDs 通常使用总线机制从硬件读取例如Microsoft OS descriptor

支持64+ 处理器 64位版本的Windows 7支持超过64个逻辑处理器 允许驱动全面使用超过64个处理器, 一个新的DDI 指定中断优先级, 处理器亲和, 亲和策略, 和指定中 断的处理器组 WdfInterruptSetExtendedPolicy( WDFINTERRUPT Interrupt, PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup); typedef struct _WDF_INTERRUPT_EXTENDED_POLICY { WDF_INTERRUPT_POLICY Policy; WDF_INTERRUPT_PRIORITY Priority; GROUP_AFFINITY TargetProcessorSetAndGroup; }

其他改进 安全性 性能 WDF 检验器 队列的I/O 分发流程在关键区域调用以避免线程悬挂引起 的拒绝服务 I/O 路径被优化以减少CPU负载 WDF 检验器 驱动校验器& 系统架构校验器 新的校验器功能捕获 IRQL 泄露 增加的校验器校验只针对1.9 终端

其他改进 修改大量bug解决边界情况 Co-installer 改进 Pnp/Power, Queue, I/O target, UsbTarget (continuous reader) Co-installer 改进 增强诊断和错误恢复 减小文件大小

其他改进 调试和诊断 PREfast 和Static Driver Verifier的改进 更好的跟踪增强了诊断 新的和更新的调试器扩展 在minidumps中的 Logdumps PREfast 和Static Driver Verifier的改进 DDIs的可扩展SAL和PFD注解 新 SDV 规则

KMDF 示例 Bluetooth sample (Windows Server 2008) CDROM Consumer IR receiver sample driver (smscir) WDM samples 移植到 KMDF PortIo MouFiltr RTM之前 已有的示例将被更新以支持新功能 一些示例将被增加

WDK中WDF在哪里? 示例 可再发行的 co-installers: %wdkroot%\redist\ TMF 文件 调试器扩展 工具 示例被移动到相关技术的文件夹 可再发行的 co-installers: %wdkroot%\redist\ TMF 文件 %wdkroot%\tools\tracing\<arch>\wdf01009.tmf %wdkroot%\tools\tracing\<arch>\Wudf01009.tmf 调试器扩展 %wdkroot%\bin\<arch>\Wdfkd.dll %wdkroot%\bin\<arch>\WudfExt.dll 工具 %wdkroot%\ tools\WDF\<arch>\Wdfverifier.exe %wdkroot%\ WDFTester\<arch>\Wdftester.exe

停止Windows 2000 支持 KMDF 1.9 将会是最后一个支持Windows 2000的版本

立即行动 阅读WDF 书籍 立即在1.9下测试你的UMDF 和KMDF 驱动 使用新的示例和调试工具 在新版本发布前不要发行 立即报告任何兼容性问题 使用新的示例和调试工具 使用UMDF 或 KMDF 制作你的下一个驱动 告诉我们是什么阻止你这么做 您的反馈会影响我们对未来的计划 发送您的反馈 wdfinfo@microsoft.com

附加资源 网络资源Web resources WDF 书籍 查看最新关于如何制作总线驱动的文章: http://www.microsoft.com/whdc/driver/wdf/KMDFBusDrv.mspx 博客 http://blogs.msdn.com/doronh/default.aspx (A Hole In My Head) http://blogs.msdn.com/peterwie/default.aspx (Pointless Blathering) http://blogs.msdn.com/iliast/default.aspx (driver writing != bus driving) 新闻组和列表 Microsoft.public.device.development.drivers OSR NTDev Mailing List WDF 书籍 Developing Drivers with the Windows Driver Foundation http://www.microsoft.com/MSPress/books/10512.aspx

本地化参考资源 网络资源 Windows 硬件开发者网站 http://www.microsoft.com/China/WHDC https://winqual.microsoft.com Windows 媒体中心中文网站: http://www.microsoft.com/china/windows/products /winfamily/mediacenter/default.mspx Windows徽标计划中文技术论坛 http://forums.microsoft.com/china/ShowForum.aspx ?ForumID=2150&SiteID=15 Windows徽标流程问题联系 HICWHQL@microsoft.com

© 2008 Microsoft Corporation. All rights reserved © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.