![Windows 2000/XP WDM设备驱动程序开发(第2版)[按需印刷]](http://images.china-pub.com/ebook20001-25000/24501/zcover.jpg)
| *对WDM深入研究,以作者实战经验,助读者少走弯路,节约大量时间。 *详细描述入门步骤,提供20个典型实例,程序给出必要的注释。 *配套光盘含有书中所有实例的驱动程序和应用程序的全部源代码,以及生成的驱动程序和可执行文件。 |
| 第1章 windows 2000和wdm驱动程序1 1.1 windows 2000组件概述1 1.2 windows 2000中的驱动程序种类2 1.3 wdm驱动程序特点3 1.3.1 内核模式驱动程序的设计目标3 1.3.2 wdm驱动程序模型5 1.3.3 设备和驱动程序的层次结构6 1.3.4 中断级别irql6 1.3.5 设备接口7 第2章 wdm驱动程序的基本结构9 2.1 kdriver类9 2.1.1 基本函数9 2.1.2 基本例程10 2.2 kpnpdevice类15 2.2.1 基本函数15 2.2.2 基本例程20 2.2.3 扩展例程21 2.3 kpnplowerdevice类23 2.4 charsample实例23 第3章 irp操作25 .3.1 irp数据结构25 3.1.1 irp重要域30 3.1.2 io堆栈单元31 3.2 kirp类38 3.3 irp基本操作43 3.3.1 完成irp43 3.3.2 向下传递irp43 3.3.3 取消irp46 3.3.4 分配和释放irp47 第4章 wdm驱动程序编程入门49 4.1 建立wdm编程环境49 4.2 创建wdm驱动程序51 4.2.1 使用drivewizard创建regsample的工程文件51 4.2.2 修改regsample的工程文件58 4.2.3 regsample实例59 4.3 生成wdm驱动程序65 4.4 安装wdm驱动程序66 4.5 win32 console和mfc应用程序72 4.5.1 win32 console应用程序72 4.5.2 mfc应用程序75 4.6 调试说明81 第5章 wdm驱动程序和应用程序之间的通信82 5.1 应用程序与驱动程序的通信82 5.1.1 打开设备82 5.1.2 关闭设备84 5.1.3 deviceiocontrol函数调用84 5.1.4 readfile和writefile函数调用87 5.2 驱动程序与应用程序的通信88 5.2.1 deviceiocontrol异步完成89 5.2.2 win32事件通知91 5.3 驱动程序对应用程序通信实例94 5.3.1 异步完成实例94 5.3.2 事件通知实例103 第6章 基本编程技术109 6.1 字符串操作109 6.1.1 字符串格式109 6.1.2 串处理函数109 6.1.3 kunitizedname类110 6.1.4 kustring类111 6.2 内存管理112 6.2.1 内存类型112 6.2.2 kmemory类113 6.2.3 kheap类115 6.3 数据操作116 6.3.1 klist,kinterlockedlist和kinterruptsafelist类116 6.3.2 kfifo,kinterlockedfifo和kinterruptsafefifo类120 6.3.3 karray122 6.3.4 kinterlockedcounter类124 6.3.5 其他数据处理函数125 6.4 kregistrykey类126 6.5 kfile类131 6.6 kdeferredcall类134 6.7 定时器136 6.7.1 1hz定时器136 6.7.2 ktimedcallback类136 6.8 kioworkitem类137 6.9 cancelspinlock类138 6.10 kspinlock类139 6.11 内核同步对象140 6.11.1 kdispatcherobject类140 6.11.2 kdispatcherobject派生类142 6.12 timersample实例147 6.13 filethread实例150 6.14 readwrite实例160 第7章 即插即用例程170 7.1 即插即用简介170 7.1.1 pnp组件170 7.1.2 即插即用irp170 7.1.3 即插即用状态171 7.2 即插即用编程172 7.2.1 即插即用例程172 7.2.2 即插即用策略173 7.2.3 pnp例程编程175 7.2.4 pnp资源178 7.3 即插即用通知178 7.3.1 win32 pnp通知178 7.3.2 内核模式通知181 7.3.3 定制通知183 7.3.4 pnpevent实例184 第8章 电 源 管 理195 8.1 电源管理概述195 8.1.1 系统电源状态与设备电源状态196 8.1.2 设备的电源能力197 8.1.3 irp_mj_power请求198 8.1.4 电源管理控制标志位199 8.1.5 设备的唤醒特征和空闲检测199 8.2 电源管理编程199 8.2.1 电源管理例程199 8.2.2 电源管理政策200 8.2.3 电源管理编程204 8.2.4 设备唤醒204 8.2.5 空闲检测204 8.3 电源管理实例205 8.3.1 poweridle实例205 8.3.2 powersleep实例209 第9章 wmi212 9.1 wmi概述212 9.2 wmi编程类函数214 9.2.1 kwmicontext类214 9.2.2 kwmidatablock类217 9.2.3 kwmistring类218 9.3 wmisample实例219 第10章 irp的串行处理249 10.1 由系统管理的irp设备队列的串行处理249 10.1.1 实现由系统管理的irp设备队列串行处理的函数249 10.1.2 系统管理的irp设备队列串行处理程序分析251 10.2 由驱动程序管理的irp队列的串行处理255 10.2.1 kdrivermanagedqueueex类255 10.2.2 驱动系统管理的irp队列串行处理程序分析257 10.3 irp串行处理实例261 10.3.1 startiochar_device实例261 10.3.2 startiochar_driver实例264 第11章 wdm过滤器驱动程序268 11.1 kwdmfilterdevice类268 11.2 wdm过滤器驱动程序生成270 11.3 wdm过滤器驱动程序安装272 11.3.1 同时安装功能驱动程序和过滤器驱动程序273 11.3.2 单独安装过滤器驱动程序274 11.4 charfilter实例277 11.5 charfilter_class实例281 第12章 usb设备开发284 12.1 usb接口概述284 12.1.1 usb设备的配置、接口和端点285 12.1.2 usb数据的传输方式287 12.1.3 usb描述符292 12.1.4 标准设备请求298 12.2 usb编程类函数299 12.2.1 kusblowerdevice类300 12.2.2 kusbinterface类304 12.2.3 kusbpipe类305 12.3 usbcounter实例308 12.3.1 驱动程序311 12.3.2 应用程序320 12.3.3 cy7c63001程序322 第13章 pci设备驱动程序开发323 13.1 硬件访问323 13.1.1 kiorange和kmemoryrange类323 13.1.2 kioregister和kmemoryregister类325 13.1.3 kioregistersafe和kmemoryregistersafe类325 13.1.4 硬件访问编程325 13.2 中断处理327 13.2.1 kinterrupt类327 13.2.2 中断处理编程329 13.3 dma传输330 13.3.1 dma编程类函数330 13.3.2 dma传输编程334 13.4 pci9054实例337 13.5 dmasample实例346 第14章 完全ddk支持的wdm驱动程序开发353 14.1 创建wdm驱动程序353 14.2 wdm驱动程序359 附录a drivermonitor的使用介绍367 附录b softice的使用介绍369 附录c softice命令详解374 参考文献400 |
商品评论(0条)