文档介绍:目录DevelopingDriverswiththeMicrosoftWindowsDriverFoundation第一部分:WDF入门第一章:WDF简介关于本书本书的约定驱动开发入门关键信息源第二章:Windows驱动基础什么是驱动?内核对象和数据结构Windows的I/O模型关于即插即用和电源管理内核编程基础内核模式下的编程技巧基本词汇汇总第3章:WDF基础WDF和WDM什么是WDF?WDF对象模型I/O模型即插即用和电源管理安全性WDF验证,跟踪和调试支持适用性和版本第2部分:探索框架第四章:驱动程序框架概述框架概述UMDF概述KMDF概述WDF架构UMDF基础架构KMDF基础架构WDF中支持的设备和驱动第五章:WDF的对象模型对象模型概述UMDF对象模型的实现KMDF对象模型的实现对象的创建对象的结构层次和生命周期对象上下文区域第6章:驱动结构和初始化所需的驱动组件驱动对象设备对象队列和其他支持的对象设备接口UMDF设备对象的创建和初始化KMDF设备对象的创建和初始化子设备枚举(KMDFPDOsOnly)KMDF驱动的设备命名技术第3部分:应用WDF的基础第7章:即插即用和电源管理即插即用和电源管理简介WDF对即插即用和电源管理的支持即插即用和电源管理的回调序列在WDF驱动中如何实现即插即用和电源管理纯软件驱动中的即插即用和电源管理简单硬件驱动中的即插即用和电源管理KMDF中的高级电源管理第8章:I/O流和调度通用I/O请求类型I/O传输类型I/O请求流I/O请求对象I/O队列I/O事件回调完成I/O请求取消和挂起请求UMDF中的自适应超时I/O的自管理第9章:I/O目标关于I/O目标I/O目标创建和管理I/O请求的创建驱动创建I/O请求的内存对象和缓存I/O请求的内存对象和缓存分配I/O请求的格式如何发送一个I/O请求UMDF驱动中的文件句柄I/O目标USBI/O目标发送I/O请求的原则第10章:同步何时需要同步?WDF的同步特性同步范围和I/O回调序列化KMDF等待锁和自旋锁KMDF驱动中I/O请求取消的同步同步的总结和提示第11章:驱动的跟踪和诊断WPP软件跟踪基础跟踪消息函数和宏在驱动中如何支持软件的跟踪软件跟踪的工具如何运行一个软件跟踪会话最佳实践:设计诊断能力第12章:WDF支持的对象内存分配寄存器的访问一般对象KMDF集合对象KMDF定时器对象在一个KMDF驱动中对WMI的支持第13章:UMDF驱动模板一个框架样例的描述如何自定义框架样例的源文件如何自定义框架样例的编译和安装源文件第四部分:KMDF驱动的其他主题第14章:框架之外如何使用系统服务外框架如何处理框架不支持的请求第15章:调度,线程上下文和IRQL关于线程中断请求级线程中断方案工作项目和驱动程序线程KMDF驱动程序用于管理线程上下文和IRQL的最佳实践第16章:硬件资源和中断硬件资源中断和中断处理第17章:直接内存访问DMA的基本概念和术语设备特定的DMA信息WindowsDMA抽象实现DMA驱动测试DMA驱动最佳实践:对象如何实现DLL基础结构如何实现UMDF的回调对象第5部分:编译,安装和测试一个WDF驱动程序第19章:如何编译WDF驱动一般情况下编译驱动程序的注意事项编译驱动简介UMDF例子:编译Fx2_DriverSampleKMDF例子:编译Osrusbfx2Sample第20章:如何安装WDF驱动驱动安装基础WDF驱动安装的注意事项WDF驱动程序包组件如何创建一个WDF驱动程序的inf文件WDF的INF文件例子如何签名和分发驱动程序包如何分发驱动程序包如何安装驱动如何解决WDF驱动程序安装问题第21章:WDF驱动的测试工具驱动程序测试入门驱动验证KMDF验证UMDF验证应用程序验证测试WDF驱动的最佳实践第22章:如何调试WDF驱动关于WDF的调试工具WinDbg基础如何准备UMDF调试如何准备KMDF调试UMDF演练:调试Fx2_DriverSampleKMDF演练:调试Osrusbfx2Sample如何使用WinDbg查看跟踪信息如何使用WinDbg查看KMDF的日志关于实际中使用WinDbg的一些建议第23章:驱动的PREfastPREfast简介如何使用PREfast用编程实践来改进PREfast的结果如何使用注释注释的一般目的驱动注释如何编写和调试注释PREfast的最佳实践例子::静态驱动程序验证SDV简介SDV如何工作SDV下如何诠释KMDF驱动程序的源代码如何运行SDV如何查看SDV报告SDV的KMDF规则例子:演练的fail_driver3的SDV分析SDV中KMDF回调函数的角色类型Part1:GettingStartedwithWDFChapterListChapter1:I