搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
竹林蹊径:深入浅出Windows驱动开发
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121125553
  • 作      者:
    张佩,马勇,董鉴源编著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2011
收藏
内容介绍
    《竹林蹊径:深入浅出windows驱动开发》是作者根据多年的工作学习经验,总结的第一手驱动开发资料。但它不是一本深刻到最底层的原理性的书,有这种预期的读者会失望。本书更多的是经验之谈,一些实践中的小发现小意外,颇为书中内容添彩。<br>    《竹林蹊径:深入浅出windows驱动开发》的特色之一,是对WDF框架做了较多的切入。本书第一个主要内容是(第3~7章)围绕WDF而展开讨论,侧重点各有不同。第3章以框架为讨论的中心;第4、5两章以WDF框架开发USB和1394驱动;第6章讲述内核C++编程,也以WDF框架为蓝本;第7章讲述WDF驱动的测试和调试。<br>    第二个主要内容是关于音视频驱动开发(第10~11章)。音视频驱动包括AVStream架构,本书做了较详细的阐述。第10章讲述使用AVStream小端口架构,第11章讲述ASIO音频驱动开发。<br>    第三个主要内容是关于设备驱动安装(第12~14章)。第12章讲系统安装模块,从总体角度阐述系统和设备驱动如何配合完好地进行工作;第13章讲述INF安装文件的细节,包括各个域的作用,以及诸多安装指令的使用。第14章讲如何编写驱动安装软件。<br>    剩余的一些章节,分别是关于驱动入门(第1、2章)、Windbg调试命令(第8章)、内核同步(第9章)等内容。<br>    读者对象:本书适合一般入门级内核程序员,对WDF有兴趣,准备开发USB或1394设备驱动者,本书尤其有用。本书对于入行较久,经验丰富的程序员,也具有一定的参考价值。
展开
目录
第1章  Hello World驱动<br>1.1  从Hello World开始<br>1.1.1  HelloDRIVER<br>1.1.2  代码解释<br>1.1.3  驱动程序的编译和安装<br>1.1.4  查看我们的驱动<br>1.2  虚拟环境<br>1.2.1  使用虚拟环境进行驱动开发<br>1.2.2  使用VMware虚拟机<br>1.2.3  目标机设置<br>1.2.4  Virtual PC虚拟机<br>1.3  小结<br>第2章  商业驱动开发技术<br>2.1  建立开发调试环境<br>2.1.1  SVN环境<br>2.1.2  创建工程,导入SVN<br>2.1.3  建立符号服务器<br>2.1.4  用符号调试<br>2.2  64位驱动开发技术<br>2.2.1  64位驱动编写技术<br>2.2.2  32位应用程序与64位驱动混合模式<br>2.3  驱动程序的发布与测试<br>2.3.1  驱动程序签名<br>2.3.2  驱动程序测试<br>2.3.3  WHQL<br>2.4  小结<br>第3章  WDF概述<br>3.1  主要特点<br>3.2  框架视图<br>3.3  兼容性<br>3.4  对象模型<br>3.4.1  对象和句柄<br>3.4.2  引用计数<br>3.4.3  上下文空间<br>3.4.4  PME接口<br>3.4.5  DDI接口<br>3.4.6  父子关系<br>3.4.7  对象同步<br>3.5  驱动对象和设备对象<br>3.5.1  驱动对象<br>3.5.2  驱动入口DriverEntry<br>3.5.3  设备对象<br>3.5.4  创建设备对象<br>3.5.5  设备栈<br>3.6  IO模型<br>3.6.1  IO目标对象<br>3.6.2  IO目标对象的细节<br>3.6.3  安全的缓冲区<br>3.6.4  内存对象(一)<br>3.6.5  内存对象(二)<br>3.6.6  框架和IO请求<br>3.6.7  更详细的处理流程<br>3.6.8  IO请求参数<br>3.6.9  队列<br>3.6.10  创建IO请求<br>3.7  PNP和电源模型<br>3.8  小结<br>使用WDF框架开发USB驱动,方便且简单。本章首先总体上从硬件和软件两个方面介绍USB相关知识点,包括设备的电气特性、总线结构、USB驱动类型以及类驱动。编程方面,从USB设备初始化、数据操作以及设备控制等几个方面来讲解,透彻并且翔实。<br>第4章  WDF USB设备驱动开发<br>4.1  USB设备硬件结构<br>4.1.1  主从结构<br>4.1.2  硬件拓扑<br>4.1.3  USB中断<br>4.2  USB软件结构<br>4.2.1  总线驱动<br>4.2.2  系统类驱动<br>4.2.3  功能驱动<br>4.2.4  父驱动与混合设备<br>4.2.5  过滤驱动<br>4.2.6  USB驱动栈、设备栈<br>4.3  内核开发<br>4.3.1  设备驱动<br>4.3.2  入口函数<br>4.3.3  USB描述符<br>4.3.4  描述符介绍<br>4.3.5  汇总举例<br>4.3.6  读取描述符<br>4.3.7  初始化<br>4.3.8  设备初始化函数<br>4.3.9  创建设备对象<br>4.3.10  设备命名、符号链接<br>4.3.11  启动设备<br>4.3.12  创建队列<br>4.3.13  停止设备/反初始化<br>4.4  数据I/O操作<br>4.4.1  USB控制命令<br>4.4.2  构造并发送控制命令<br>4.4.3  读USB中断端口<br>4.4.4  连续读操作<br>4.4.5  数据处理函数<br>4.4.6  中断端口的效率<br>4.4.7  读/写批量端口<br>4.5  设备控制<br>4.5.1  关于I/O Target对象<br>4.5.2  获取USB版本<br>4.5.3  管道重置<br>4.5.4  设备重置<br>4.5.5  管道中止与终止<br>4.6  用户程序<br>4.6.1  内核读/写<br>4.6.2  控制命令<br>4.7  小结<br>第5章  WDF 1394驱动开发<br>5.1  1394一席谈<br>5.1.1  版本情况<br>5.1.2  电源特性<br>5.1.3  1394卡<br>5.1.4  总线拓扑<br>5.2  发送请求<br>5.2.1  同步方式<br>5.2.2  异步方式<br>5.2.3  对WDM的回忆<br>5.3  总线重置与计数<br>5.3.1  总线重置<br>5.3.2  设置重置回调<br>5.3.3  计数更新<br>5.4  PNP操作<br>5.5  异步通信<br>5.5.1  地址范围<br>5.5.2  异步读<br>5.5.3  异步写<br>5.5.4  异步锁请求<br>5.5.5  数据流<br>5.6  等时通信<br>5.6.1  申请带宽<br>5.6.2  释放带宽<br>5.6.3  等时通道<br>5.6.4  资源句柄<br>5.6.5  缓冲区挂载<br>5.6.6  缓冲区解挂<br>5.6.7  开始传输<br>5.6.8  停止传输<br>5.6.9  其他等时操作<br>5.7  其他操作<br>5.7.1  设备配置<br>5.7.2  获取控制器信息<br>5.7.3  速度信息<br>5.7.4  厂商自定义命令<br>5.8  安装与测试<br>5.8.1  1394虚拟设备<br>5.8.2  创建虚拟设备<br>5.8.3  示例代码<br>5.8.4  安装与测试<br>5.9  小结<br>第6章  内核驱动C++编程<br>6.1  驱动中的类<br>6.1.1  一个简单的例子<br>6.1.2  new/delete<br>6.1.3  extern "C"<br>6.1.4  全局/静态变量<br>6.1.5  栈的忧虑<br>6.2  类封装的驱动程序<br>6.2.1  寻找合适的存储所<br>6.2.2  类方法与事件函数<br>6.2.3  KMDF驱动实现<br>6.2.4  WDM驱动实现<br>6.3  多态<br>6.3.1  基类、子类<br>6.3.2  实现多态<br>6.3.3  测试<br>6.4  小结<br>第7章  WDF驱动测试<br>7.1  WDF错误<br>7.1.1  实例分析<br>7.1.2  USB错误<br>7.2  WDF扩展调试命令<br>7.3  WDFTester<br>7.3.1  WDFFiTester<br>7.3.2  使用<br>7.3.3  WDFCallTracer<br>7.4  WDFVerifier<br>7.4.1  识别KMDF驱动<br>7.4.2  使用与介绍<br>7.5  小结<br>第8章  调试命令详解<br>8.1  概述<br>8.1.1  寻求帮助<br>8.1.2  DML语言<br>8.1.3  基本信息<br>8.1.4  基本设置<br>8.1.5  格式化显示<br>8.1.6  开始调试<br>8.2  符号与源码<br>8.2.1  模块列表<br>8.2.2  模块信息<br>8.2.3  符号路径<br>8.2.4  符号加载<br>8.2.5  符号搜索<br>8.2.6  源码命令<br>8.3  进程与线程<br>8.3.1  进程命令<br>8.3.2  线程命令<br>8.3.3  异常与事件<br>8.3.4  局部变量<br>8.3.5  显示类型<br>8.4  断点<br>8.4.1  软件断点<br>8.4.2  硬件断点<br>8.4.3  其他操作<br>8.5  内存命令<br>8.5.1  查看内存<br>8.5.2  内存信息<br>8.5.3  其他命令<br>8.6  小结<br>第9章  内核同步<br>9.1  关于内核同步<br>9.2  内核事件同步<br>9.2.1  原理<br>9.2.2  用户程序<br>9.2.3  内核实现<br>9.3  IRP同步<br>9.3.1  用户程序<br>9.3.2  内核实现<br>9.4  WMI同步<br>9.5  数据缓冲区同步<br>9.6  反向调用<br>9.7  小结<br>第10章  音频驱动开发<br>10.1  简介<br>10.1.1  音频模块架构<br>10.1.2  系统中的音频设备<br>10.2  AVStream对象<br>10.2.1  设备对象<br>10.2.2  Filter工厂和Filter对象<br>10.2.3  Pin工厂和Pin对象<br>10.2.4  Node对象与Connection结构体<br>10.3  AVStream描述符<br>10.3.1  描述符简介<br>10.3.2  描述符示例<br>10.3.3  分发函数表<br>10.3.4  自控表<br>10.3.5  自控表示例<br>10.4  代码讲解<br>10.4.1  入口函数<br>10.4.2  设备分发函数<br>10.4.3  Filter与Pin分发函数<br>10.4.4  创建和删除<br>10.4.5  数据处理<br>10.4.6  数据格式<br>10.5  自控表函数<br>10.5.1  事件函数<br>10.5.2  属性函数<br>10.5.3  方法函数<br>10.5.4  用户接口<br>10.6  硬件操作<br>10.6.1  数据DMA<br>10.6.2  AVStream中的DMA实现<br>10.6.3  谈谈ISR<br>10.7  安装与测试<br>10.7.1  安装<br>10.7.2  测试工具<br>10.8  小结<br>第11章  ASIO虚拟声卡<br>11.1  引言<br>11.2  关于ASIO<br>11.3  ASIO用户驱动<br>11.3.1  COM接口<br>11.3.2  安装与卸载<br>11.3.3  IASIO接口<br>11.3.4  技术核心<br>11.3.5  计算延迟<br>11.4  内核驱动实现<br>11.4.1  同步<br>11.4.2  原理<br>11.4.3  实现<br>11.5  ASIO音频软件<br>11.6  小结<br>第12章  设备驱动安装入门<br>12.1  基础知识预介<br>12.1.1  设备类型<br>12.1.2  设备实例ID<br>12.1.3  驱动加载和安装<br>12.2  安装模块<br>12.2.1  内核PNP管理器<br>12.2.2  用户PNP管理器<br>12.2.3  安装接口函数(Setup API)<br>12.2.4  配置管理器接口(CfgMgr API)<br>12.2.5  类安装器(Class Installers)<br>12.2.6  类协安装器(Class Co-Installers)<br>12.2.7  设备协安装器(Device Co-Installers)<br>12.2.8  驱动包(Driver Package)<br>12.2.9  驱动仓库(Driver Store)<br>12.2.10  设备管理器(Device Manager)<br>12.2.11  安装程序<br>12.2.12  新设备向导<br>12.2.13  添加硬件向导<br>12.2.14  驱动安装器(Driver Installer)<br>12.3  重要问题<br>12.3.1  寻找和选择<br>12.3.2  32位与64位系统兼容<br>12.3.3  系统重启<br>12.4  安装模式<br>12.4.1  示例1:客户端模式<br>12.4.2  示例2:服务器模式<br>12.5  安装器编程<br>12.5.1  DIF码<br>12.5.2  处理流程<br>12.5.3  工程示例<br>12.5.4  注册<br>12.6  小结<br>第13章  深入解析INF文件<br>13.1  概述<br>13.1.1  域<br>13.1.2  指令<br>13.1.3  多系统<br>13.2  注册表指令<br>13.2.1  缩写根键<br>13.2.2  软件键<br>13.2.3  硬件键<br>13.2.4  AddReg<br>13.2.5  DelReg<br>13.2.6  BitReg<br>13.3  文件操作指令<br>13.3.1  CopyFiles<br>13.3.2  DelFiles<br>13.3.3  RenFiles<br>13.4  服务指令<br>13.4.1  AddService<br>13.4.2  DelService<br>13.5  基本域<br>13.5.1  版本域<br>13.5.2  文件域<br>13.5.3  默认安装域<br>13.5.4  控制域<br>13.5.5  字符串域<br>13.6  设备类安装域<br>13.6.1  主域<br>13.6.2  服务子域<br>13.7  接口类安装域<br>13.8  厂商/产品域<br>13.8.1  厂商域<br>13.8.2  产品域<br>13.9  设备安装域<br>13.9.1  硬件子域<br>13.9.2  协安装器子域<br>13.9.3  接口子域<br>13.9.4  厂商默认配置子域<br>13.9.5  逻辑优先配置子域<br>13.10  ChkInf介绍<br>13.11  小结<br>第14章  设计驱动安装程序<br>14.1  驱动包<br>14.1.1  安装方式<br>14.1.2  安装驱动包<br>14.1.3  卸载驱动包<br>14.2  驱动更新<br>14.2.1  设备已连接<br>14.2.2  设备未连接<br>14.2.3  枚举系统设备<br>14.3  分析INF文件<br>14.3.1  函数介绍<br>14.3.2  打印设备ID<br>14.4  MyDrvInst介绍<br>14.5  制作软件安装包<br>14.5.1  视图介绍<br>14.5.2  我们的工程<br>14.5.3  编译执行<br>14.6  小结<br>附录A  CY001 USB开发板<br>附录B  VisualKD + VMWare实现单机内核调试
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证