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