书籍详情

WINDOWS WDM设备驱动程序开发指南

WINDOWS WDM设备驱动程序开发指南

作者:(美)[C.坎特]Chris Cant著;孙义 等译

出版社:机械工业出版社

出版时间:2000-01-01

ISBN:9787111077091

定价:¥56.00

购买这本书可以去
内容简介
  本书主要介绍Windows 98和Windows 2000新的驱动程序模型(WDM)。描述了WDM设备驱动程序的结构、功能和开发方法;通过实际的设备驱动程序例子,说明WDM设备驱动程序的实现技术、测试和调试方法;介绍了本书提供的一个调试软件DebugPrint;说明如何在客户驱动程序中使用USB驱动程序接口(USBDI)访问USB设备,以及如何利用HID类驱动程序以标准方法访问多种输入设备。
作者简介
暂缺《WINDOWS WDM设备驱动程序开发指南》作者简介
目录
第1章&nbsp;&nbsp;引言</font><br></font><br>1.1 Windows驱动程序模型</font><br>1.1.1 WDM与NT式驱动程序</font><br>1.1.2 可用的驱动程序</font><br>1.1.3 本书配套光盘</font><br>1.1.4 设备驱动程序软件工具</font><br>1.1.5 未讨论的驱动程序类型</font><br>1.2 新的思维方式</font><br>1.2.1 设备驱动程序环境</font><br>1.2.2 术语与资源</font><br>1.3 Win32程序接口</font><br>1.3.1 基本I/O</font><br>1.3.2重叠的异步请求</font><br>l,3.3 环境</font><br>1.3.4 设备特定的限制</font><br>1.3.5 驱动程序的其他Win32访问</font><br>1.4 小结</font><br></font><br>第2章&nbsp;&nbsp;概述</font><br></font><br>2.1 设备驱动程序的组成部分</font><br>2.1.1 驱动程序人口点和回调例程</font><br>2.1.2 分发例程</font><br>2.1.3 创建设备</font><br>2.1.4 硬件资源分配</font><br>2.1.5 调用其他驱动程序</font><br>2.1.6 串行硬件的访问</font><br>2.1.7 访问硬件</font><br>2.1.8 硬件问题</font><br>2.1.9 电源管理</font><br>2.1.10 WMI</font><br>2.1.11 NT事件报告</font><br>2.1.12 系统线程</font><br>2.2 设备驱动程序的类型</font><br>2.2.1 Windows概述</font><br>2.2.2 I/O请求处理</font><br>2.2.3 即插即用设备栈</font><br>2.2.4 标准总线驱动程序和类驱动程序</font><br>2.2.5 驱动程序栈举例</font><br>2.3 驱动程序选择</font><br>2.3.1 现成的驱动程序</font><br>2.3.2 使用标准驱动程序</font><br>2.3.3 操作系统</font><br>2.3.4 分层的设备驱动程序</font><br>2.3.5 单一驱动程序</font><br>2.3.6 建议的和可选的功能</font><br>2.4 WDM的合理性</font><br>2.4.1 一个核心模型</font><br>2.4.2 复杂性</font><br>2.4.3 即插即用与分层</font><br>2.4.4 功能范围</font><br>2.4.5 开发环境</font><br>2.4.6 开发者支持</font><br>2.5 小结</font><br></font><br>第3章&nbsp;&nbsp;设备驱动程序设计</font><br></font><br>3.1 引言</font><br>3.2 驱动程序设计指南</font><br>3.2.1 文档</font><br>3.2.2 好的设计</font><br>3.3 内核调用</font><br>3.3.1 内核宏</font><br>3.3.2 内核对象</font><br>3.3.3 驱动程序例程名称</font><br>3.4 处理器模型</font><br>3.4.1 处理器模式</font><br>3.4.2 中断级</font><br>3.5 使用内存</font><br>3.5.1 内存池</font><br>3.5.2 旁视列表</font><br>3.5.3 其他的内存考虑</font><br>3.5.4 访问用户应用程序内存</font><br>3.5.5 DMA</font><br>3.6 IRP处理</font><br>3.6.1 IRP参数</font><br>3.6.2 在驱动程序栈中处理IRP</font><br>3.7 小结</font><br></font><br>第4章&nbsp;&nbsp;WDM驱动程序环境</font><br></font><br>4.1 系统设置</font><br>4.1.1 DDK</font><br>4.1.2 本书配套光盘软件的安装</font><br>4.1.3 快捷方式</font><br>4.2 实用程序</font><br>4.2.1 DOS框</font><br>4.2.2 计算机管理控制台</font><br>4.2.3 NT Devices小程序</font><br>4.2.4 硬件向导</font><br>4.2.5 注册表编辑器</font><br>4.2.6 INF编辑器</font><br>4.2.7 WBEM</font><br>4.2.8 调试程序</font><br>4.2.9 NT和Windows 2000实用程序</font><br>4.2.10 本书配套光盘上的工具</font><br>4.3 驱动程序目标</font><br>4.4 驱动程序语言和库</font><br>4.5 好的代码</font><br>4.6 build实用程序</font><br>4.6.1 makefile</font><br>4.6.2 SOURCES</font><br>4.6.3 makefile文件</font><br>4.6.4 build目录</font><br>4.6.5 其他build步骤</font><br>4.6.6 DIRS文件</font><br>4.7 VC++项目</font><br>4.7.1 Makefile构造环境</font><br>4.7.2 M8kCDfVf</font><br>4.7.3 目录</font><br>4.7.4 常见任务</font><br>4.8 Wdml驱动程序代码</font><br>4.8.1 编译器选项</font><br>4.8.2 头文件</font><br>4.8.3 驱动程序进入模块</font><br>4.8.4 版本资源</font><br>4.8.5 访问注册表</font><br>4.8.6 UNICODESTRING结构</font><br>4.9 安装Wdml</font><br>4.10 安装详细信息</font><br>4.10.1 INF文件</font><br>4.10.2 注册表</font><br>4.10.3 Windows 2000对象</font><br>4.11 设备和驱动程序的管理</font><br>4.11.1 添加另一个设备</font><br>4.11.2 删除设备</font><br>4.11.3 更新驱动程序</font><br>4.11.4 NT式驱动程序</font><br>4.12 小结</font><br></font><br>第5章&nbsp;&nbsp;设备接口</font><br></font><br>5.1 设备</font><br>5.1.1 设备访问</font><br>5.1.2 后续的1/O</font><br>5.2 设备对象和设备扩展</font><br>5.3 设备对象的创建和删除</font><br>5.3.1 创建设备</font><br>5.3.2 删除设备</font><br>5.4 设备名</font><br>5.5 设备接口</font><br>5.6 Win32设备接回访问</font><br>5.6.1 得到设备的接口名</font><br>5.6.2 运行WdmlTest</font><br>5.7 小结</font><br></font><br>第6章&nbsp;&nbsp;测试与调试</font><br></font><br>6.1 测试、测试、再测试</font><br>6.2 驱动程序测试</font><br>6.2.1 测试所有的函数是否都工作</font><br>6.2.2 Windows 2000t0Windows 98</font><br>6.2.3 多处理器</font><br>6.2.4 取消1/O</font><br>6.3 调试</font><br>6.4 调试技术</font><br>6.4.1 递增式的开发</font><br>6.4.2 检查版本</font><br>6.4.3 Windows 2000还是Windows 98</font><br>6.5 调试工具</font><br>6.5.1 Windows 2000事件</font><br>6.5.2 跟踪工具</font><br>6.5.3 驱动程序验证程序</font><br>6.5.4 调试程序</font><br>6.6 DebugPrint</font><br>6.6.1 使用 DebugPrlnt</font><br>6.6.2 使用DebugPrlnt Monitor</font><br>6.6.3 在驱动程序中使用DebugPrint</font><br>6.7 关于调试的说明</font><br>6.7.1 更新驱动程序</font><br>6.7.2 驱动程序在引导时失败</font><br>6.7.3 驱动程序依赖性</font><br>6.7.4 未取消的IRP</font><br>6.8 错误检查代码</font><br>6.9 小结</font><br></font><br>第7章&nbsp;&nbsp;分发例程</font><br></font><br>7.1 分发例程IRP</font><br>7.2 I/O请求包</font><br>7.2.1 分发例程处理</font><br>7.2.2 可重人性</font><br>7.2.3 IRP处理</font><br>7.2.4 IRP完成</font><br>7.3 IRP结构</font><br>7.4 常用的IRP参数
7.4.1 “仓IJ建”IRP,IRO_MJ_CREATE</font><br>7.4.2 “关闭”IRp,IRP_MJ_CLOSE</font><br>7.4.3 “读” IRP,IRP_MJ_READ</font><br>7.4.4 “写” IRP,IRP_MJ_WRITE</font><br>7.4.5 IOCTL IRp,IRP_MJ_IOCTL</font><br>7.5 用户缓冲区</font><br>7.5.1 缓冲 I/O</font><br>7.5.2 直接IIO</font><br>7.5.3 其他IIO方式</font><br>7.5.4 DeviceloControl缓冲区</font><br>7.6 Wdml分发例程</font><br>7.6.1 创建和关闭</font><br>7.6.2 写</font><br>7.6.3 读</font><br>7.6.4 IOCTL</font><br>7.6.5 系统控制</font><br>7.7 小结</font><br></font><br>第8章&nbsp;&nbsp;即插即用与设备栈</font><br></font><br>8.1 设计概述</font><br>8.1.1 设计目标</font><br>8.1.2 即插即用系统</font><br>8.2 即插即用消息</font><br>8.3 设备枚举</font><br>8.3.1 固定的和可配置的设备</font><br>8.3.2 校举</font><br>8.3.3 设备树</font><br>8.4 设备栈</font><br>8.4.1 PnP支持与设备栈</font><br>8.4.2 设备对象</font><br>8.5 上沿</font><br>8.5.1 USB键盘例子</font><br>8.5.2 功能设备对象和物理设备对象</font><br>8.5.3 上沿定义</font><br>8.6 小结</font><br></font><br>第9章&nbsp;&nbsp;即插即用的实现</font><br></font><br></font><br>9.1 实现即插即用</font><br>9.1.1 添加和删除设备</font><br>9.1.2 基本的PnP处理程序</font><br>9.1.3 沿设备栈向下传递不支持的IRP</font><br>9.1.4 PnP状态和消息</font><br>9.1.5 状态标志</font><br>9.1.6 保持IRP</font><br>9.1.7 打开的句柄</font><br>9.1.8 处理PnP IRP的时间</font><br>9.1.9 实现资源分配</font><br>9.2 测试Wdrm2</font><br>9.3 其他PnP IRP</font><br>9.3.1 IRH_MN_DEVICE_USAGE NOTIFICATION</font><br>9.3.2 IRP_MN_FILTER_RESOURCEREQUIREMENTS</font><br>9.3.3 IRP_MN_QUERY BUS INFORMATION</font><br>9.3.4 IRP_MN_QUERYCAPABILITIES</font><br>9.3.5 IRP_MN_QUERY_DEVICE RELATIONS</font><br>9.3.6 IRP_MN_QUERY_DEVICE TEXT</font><br>9.3.7 IRP_MN_QUERY_ID</font><br>9.3.8 IRP_MN_QUERY INTERFACE</font><br>9.3.9 IRP_MN_QUERY_PNP DEVICE STATE</font><br>9.3.10 IRP_MN_QUERY_RESOURCE REQUIREMENTS</font><br>9.3.11 IRP_MN_QUERY RESOURCES</font><br>9.3.12 IRP_MN_READ CONFIG</font><br>9.3.13 IRHMNSETLOCK</font><br>9.3.14 IRP_MN_WRITE CONFIG</font><br>9.4 PnP通知</font><br>9.4.1 Win32 PnP通知</font><br>9.4.2 设备驱动程序PnP通知</font><br>9.4.3 通知请求驱动程序交互</font><br>9.5 高级的即插即用</font><br>9.5.1 总线驱动程序</font><br>9.5.2 发送PnP IRP</font><br>9.5.3 设备属性</font><br>9.6 小结</font><br></font><br>第10章&nbsp;&nbsp;电源管理</font><br></font><br>10.1 电源概述</font><br>10.1.1 ACPI</font><br>10.1.2 Win32电源管理</font><br>10.1.3 Wdln2Power应用程序</font><br>10.1.4 电池小类驱动程序</font><br>10.2 系统电源策略’</font><br>10.3 电源IRP</font><br>10.4 处理电源IRP</font><br>10.4.1 处理设备电源IRP</font><br>10.4.2 处理系统电源IRP</font><br>10.4.3 不处理电源 IRP</font><br>10.5 设备电源策略主</font><br>10.6 处理“设置电源” IRP</font><br>10.6.1 设置系统电源状态</font><br>10.6.2 设置设备电源状态</font><br>10.6.3 SetPowerstate</font><br>10.7 分发例程的电源处理</font><br>10.8 测试Wdm2电源功能</font><br>10.9 设备功能</font><br>10.10 高级电源管理</font><br>10.10.1 唤醒</font><br>10.10.2 电源顺序</font><br>10.10.3 停止系统关闭事件</font><br>10.10.4 电源通知</font><br>10.10.5 检测系统电源状态变化</font><br>10.10.6 WMI支持</font><br>10.11 小结</font><br></font><br>第11章&nbsp;&nbsp;安装</font><br></font><br>11.1 WDM驱动程序的安装过程</font><br>11.2 INF文件</font><br>11.3 标准节</font><br>11.4 INF文件的节层次结构</font><br>11.4.1 Wdffil FreeINF</font><br>11.4.2 Inffidit</font><br>11.5 跨平台和WDM INF文件</font><br>11.5.1 在Windows 2000中安装Wdml</font><br>11.5.2 Windows 2000IR务注册表项</font><br>11.6 查找驱动程序</font><br>11.6.1 硬件ID</font><br>11.6.2 兼容ID</font><br>11.6.3 重复校举</font><br>11.7 NT式驱动程序的安装</font><br>11.7.1 安装过程</font><br>11.7.2 驱动程序的装人顺序</font><br>11.7.3 NT 4控制面板Devices小程序</font><br>11.7.4 Windows 2000设备管理</font><br>11.7.5 Windows 98设备管理</font><br>11.7.6 REG文件</font><br>11.8 在Windows 98中安装NT式驱动程序</font><br>11.9 小结</font><br></font><br>第12章&nbsp;&nbsp;WMI</font><br></font><br>12.1 概述</font><br>12.1.1 WBEM模型</font><br>12.1.2 WDM提供者</font><br>12.2 一个WMI驱动程序</font><br>12.2.1 WMI构造环境</font><br>12.2.2 注册为WMI数据提供者</font><br>12.2.3 处理系统控制IRP</font><br>12.2.4 QuefywmiReglnfo处理程序</font><br>12,2.5 QuerywmiDataBlock处理程序</font><br>12.2.6 SetwmiDataBlock处理程序</font><br>12.2.7 SetwmiDataltem处理程序</font><br>12.2.8 ExecutewmiMethod处理程序</font><br>12.2.9 触发WMI事件</font><br>12.3 WMI运行</font><br>12.4 小结</font><br></font><br>第13章&nbsp;&nbsp;事件的报告</font><br></font><br>13.1 概述</font><br>13.2 消息文件</font><br>13.3 注册为事件源</font><br>13.4 事件的产生</font><br>13.5 Wdm3事件的测试</font><br>13.6 小结</font><br></font><br>第14章&nbsp;&nbsp;DebugPrint</font><br></font><br></font><br>14.1 设计规范</font><br>14.2 设计实现</font><br>14.3 测试驱动程序代码</font><br>14.3.1 系统线程</font><br>14.3.2 事件</font><br>14.3.3 同步</font><br>14.3.4 产生跟踪事件</font><br>14.3.5 链表</font><br>14.3.6 最后的代码</font><br>14.4 DebugPrint驱动程序</font><br>14.4.1 设计</font><br>14.4.2 DebugPrint设备</font><br>14.4.3 读队列</font><br>14.4.4 取消IRP</font><br>14.4.5 写算法</font><br>14.4.6 读算法</font><br>14.5 DebugPrlnt Monitor</font><br>14.5.1 设计</font><br>14.5.2 Win32工作者线程</font><br>14.5.3 DebugPrintEvent类</font><br>14.5.4 Win32重叠1/O</font><br>14.6 小结</font><br></font><br>第15章&nbsp;&nbsp;Wdmlo和 PHDIo驱动程序</font><br></font><br>15.1 Win32接口</font><br>15.1.1 IOCTL</font><br>15.1.2 命令</font><br>15.2 LPT打印机驱动程序的应用程序</font><br>15.2.1 并行端口</font><br>15.2.2 WdmoloTest</font><br>15.2.3 PHDIoTes卜</font><br>15.2.4 发出命令</font><br>15.2.5 使用中断驱动的1/O写数据</font><br>15.2.6 使用中断驱动的I/O读数据</font><br>15.3 测试Wdmlo</font><br>15.3.1 安装Wdmlo</font><br>15.3.2 LogConfig节</font><br>15.3.3 运行WdmloTest</font><br>15.4 测试PHDIO</font><br>15.4.1 安装PHDIO</font><br>15.4.2 运行PHDIOTest</font><br>15.5 Wdmlo和PHDIo的分析</font><br>15.5.1 使用哪一个</font><br>15.5.2 缺陷</font><br>15.6 小结</font><br></font><br>第16章&nbsp;&nbsp;硬件1/O IRP的排队</font><br></font><br>16.1 硬件访问</font><br>16.2 IRP队列</font><br>16.2.1 设备队列</font><br>16.2.2 Startlo例程</font><br>16.3 命令的处理</font><br>16.4 取消排队的IRP</font><br>16.4.1 排队IRP的取消</font><br>16.4.2 Wdmlo IRP取消策略</font><br>16.4.3 另一种取消策略</font><br>16.5 “精理” IRP的处理</font><br>16.6 测试、取消和清理</font><br>16.7 补充设备队列</font><br>16.8 小结</font><br></font><br>第17章&nbsp;&nbsp;中断驱动的I/O</font><br></font><br>17.1 中断处理</font><br>17.1.1 中断的性质</font><br>17.1.2 连接到中断</font><br>17.2 Wdmlo读与写</font><br>17.3 中断处理程序</font><br>17.4 延迟过程调用</font><br>17.4.1 使用基本的DPC</font><br>17.4.2 自定义DPC</font><br>17.5 定时器</font><br>17.5.1 1秒间隔定时器</font><br>17.5.2 Wdmlo超时</font><br>17.5.3 自定义定时器</font><br>17.6小结</font><br></font><br>第18章&nbsp;&nbsp;NT硬件</font><br></font><br>18.1 NT式驱动程序的构造</font><br>18.1.1 DDK问题</font><br>18.1.2 编译环境</font><br>18.1.3 NT式驱动程序结构</font><br>18.2 设备的创建与删除</font><br>18.3 资源分配</font><br>18.4 资源转换</font><br>18.5 资源的查找</font><br>18.5.1 自动检测的硬件</font><br>18.5.2 查询可配置总线</font><br>18.5.3 最后的资源查找技术</font><br>18.6 小结</font><br></font><br>第19章&nbsp;&nbsp;WDM系统驱动程序</font><br></font><br>19.1 客户驱动程序的编写</font><br>19.2 过滤驱动程序</font><br>19.3 NT层次</font><br>19.4 小结</font><br></font><br>第20章&nbsp;&nbsp;通用串行总线</font><br></font><br>20.1 设备类</font><br>20.2 概述</font><br>20.2.1 Windows USB驱动程序接口</font><br>20.2.2 传输类型</font><br>20.3 USB低级结构</font><br>20.3.1 USB设备</font><br>20.3.2 USB信号</font><br>20.3.3 总线信号</font><br>20.3.4 低层协议</font><br>20.3.5 电源</font><br>20.4 USB设备框架</font><br>20.4.1 总线枚举</font><br>20.4.2 标准控制事务</font><br>20.4.3 描述符</font><br>20.4.4 驱动程序安装</font><br>20.4.5 USB类</font><br>20.4.6 新增功能</font><br>20.5 客户驱动程序设计</font><br>20.5.1 端点类型选择</font><br>20.5.2 等时设备</font><br>20.6 小结</font><br></font><br>第21章&nbsp;&nbsp;USB驱动程序接口</font><br></font><br>21I USB客户驱动程序设计</font><br>21.1.1 UsbKbd的使用</font><br>21.1.2 USbKbd安装</font><br>21.1.3 头文件和库</font><br>ZI.2 USBDI的IOCTL</font><br>21.2IURB</font><br>21.2.2 USBDI的调用</font><br>21.2.3 多个USBDI调用</font><br>21.3 访问USB</font><br>21.3.1 初始化USB设备</font><br>21.3.2 发出 URB</font><br>21.3.3 选择接口</font><br>21.3.4 其他初始化</font><br>21.3.5 取消配置的选择</font><br>21.3.6 中断传输</font><br>21.3.7 控制传输</font><br>21.3.8 其他问题</font><br>21.4 UsbKbd的测试</font><br>21.5 USBDI结构参考</font><br>21.6 USBDI URB参考</font><br>21.6.1 URB设置功能</font><br>21.6.2 URB传输功能</font><br>21.6.3 URB缺省管道功能</font><br>21.6.4 URB等时帧功能</font><br>21.7 小结</font><br></font><br>第22章&nbsp;&nbsp;人工输入设备模型</font><br></font><br>22.1 HID概述</font><br>22.2 HID模型</font><br>22.2.1 报告</font><br>22.2.2 用法</font><br>22.2.3 获取HID功能</font><br>22.3 HID模型表示</font><br>22.3.1 HID描述符</font><br>22.3.2 设备属性</font><br>22.3.3 报告描述符</font><br>22.6 小结</font><br></font><br>第23章&nbsp;&nbsp;HID客户</font><br></font><br>23.1 HID类驱动程序</font><br>23.1.1 HID类驱动程序特征</font><br>23.1.2 Windows HID客户程序</font><br>23.1.3 头文件</font><br>23.1.4 HID USB小驱动程序</font><br>23.1.5 USB启动设备</font><br>23.2 用户态HID客户程序</font><br>23.2.1 查找HID设备</font><br>23.2.2 读取HID功能</font><br>23.2.3 读取输入报告</font><br>23.2.4 发送输出报告</font><br>23.2.5 其他用户态HID客户函数</font><br>23.2.6 运行HidKbdUser</font><br>23.3 内核态HID客户程序</font><br>23.3.1 客户程序类型</font><br>23.3.2 PnP通知</font><br>23.3.3 HidKbd设备</font><br>23.3.4 读取HID功能</font><br>23.3.5 HidKbd设备的打开和关闭</font><br>23.3.6 数据的读写</font><br>23.3.7 其他HID类IOCTL</font><br>23.4 小结</font><br></font><br>附录A 信息资源</font><br>附录B PC99</font><br>附录C 直接存储器访问</font><br>附录D 词汇表
猜您喜欢

读书导航