楚狂人 驱动编程基础教程
版权声明
本书是免费电子书。作者保留一切权利。但在保证本书完整性(包括版权声明、前言、
正文内容、后记、以及作者的信息),并不增删、改变其中任何文字内容的前提下,欢迎
任何读者以任何形式(包括各种格式的文档)复制和转载本书。同时不限制利用此书赢利
的行为(如收费注册下载,或者出售光盘或打印版本)。不满足此前提的任何转载、复制
赢利行为则是侵犯版权的行为。
发现本书的错漏之处,请联系作者。请不要修改本文中任何内容,不经过作者的同意
发布修改后的版本。
作者信息
作者网名楚狂人。真名谭文。在上海从事 驱动开发相关的工作。对本书任
何内容有任何疑问的读者,可以用下列方式和作者取得联系:
楚狂人 驱动编程基础教程
前言
本书非常适合熟悉 应用编程的读者转向驱动开发。所有的内容都从最基础
的编程方法入手。介绍相关的内核 !"# 然后举出示范的例子。这本书只有不到 $% 页,是
一本非常精简的小册子。所以它并不直接指导读者开发某种特定类型的驱动程序。而是起
到一个入门指导的作用。
即使都是使用 &'&((语言的代码,在不同的应用环境中,常常看起来还是大相径庭 。
比如用 )*+&((编写的 ,- 程序代码和用 .&((编写的 /& 应用程序的代码,看起
来就几乎不像是同一种语言。这是由于它们所依赖的开发包不相同的缘故。
在任何情况下都以写出避免依赖的代码为最佳。这样可以避免重复劳动。但是我们在
学习一种开发包的使用时,必须习惯这个环境的编码方式,以便获得充分利用这个开发包
的能力。
本书的代码几乎都依 赖 于 ,012,203 。但 是不限 ,0 的版本 。
,0 还在不断的升级中。这个开发包是由微软公司免费提供的。读者可以在微软的网站
上下载。
当然读者必须把 ,0 安装的计算机上并配置好开发环境。具体的安装和配置方法本
书没有提供。因为网上已经有非常多的中文文档介绍它们。
读完这本书之后,读者一定可以更轻松的阅读其他专门的驱动程序开发的文档和相关
书籍。而不至于看到大量无法理解的代码而中途放弃。如果有任何关于本书的内容的问题
读者可以随时发邮件到 或者 。
能够回答的问题我一般都会答复。
写本书的时候,我和 4 合作的一本名为《天书夜读》1在网上有一个大约
5%6内容的缩减电子版本3正在电子工业出版社编辑。预计还有不到一个月左右就会出版。
这也是我自己所见的唯一一本中文原创的从汇编和反汇编角度来学习 内核编程
和信息安全软件开发的书。希望读者多多支持。有想购买的读者请发邮件给我。我会在本
书出版的第一时间,回复邮件告知购买的方法。
此外我正在写另一本关于 安全软件的驱动编程的书。但是题目还没有拟好。
实际上,读者现在见到的免费版本的《 驱动编程基础教程》是从这本书的第一
部分中节选出来的。这本书篇幅比较大,大约有 %%78%% 页。主要内容如下:
第一章驱动编程基础
第二章磁盘设备驱动
第三章磁盘还原与加密
第四章传统文件系统过滤
第五章小端口文件系统过滤
第六章文件系统保护与加密
第七章协议网络驱动
第八章物理网络驱动
第九章网络防火墙与安全连接
第十章打印机驱动与虚拟打印
第十一章视频驱动与过滤
楚狂人 驱动编程基础教程
附录 !2,0 的安装与驱动开发的环境配置
附录 92用 ,+: 调试 驱动程序
这本书还没有完成。但是肯定要付出巨大的精力,所以请读者不要来邮件索取完整的
免费的电子版本。希望读者支持本书的纸版出版。因为没有完成,所以还没有联系出版商
有愿意合作出版本书的读者请发邮件与我联系。
凡是发送邮件给我的读者,我将会发送邮件提供本人作品最新的出版信息,以及最新
发布的驱动开发相关的免费电子书。如果不需要这些信息的,请在邮件里注明,或者回复
邮件给我来取消订阅。
谭文
5%%8 年 月 日
楚狂人 驱动编程基础教程
目录
版权声明
作者信息
前言5
目录;
第一章 字符串
2使用字符串结构
52字符串的初始化$
2字符串的拷贝8
;2字符串的连接
2字符串的打印
第二章 内存与链表
5 内存的分配与释放
552使用 <#))=>5
52使用长长整型数据
5; 使用自旋锁
第三章 文件操作8
2使用 -9?&)!))=#9@)8
52打开和关闭文件
2文件的读写操作55
第四章 操作注册表5
;2注册键的打开操作5
;52注册值的读5$
;2注册值的写5
第五章 时间与定时器%
2获得当前滴答数%
52获得当前系统时间
2使用定时器5
第六章 内核线程
2使用线程
52在线程中睡眠8
2使用事件通知8
第七章 驱动与设备;5
$2驱动入口与驱动对象;5
$52分发函数与卸载函数;5
$2设备与符号链接;
$;2设备的生成安全性限制;
$2符号链接的用户相关性;$
楚狂人 驱动编程基础教程
第八章 处理请求;
82#=" 与 #-)!&0<-&!)#-;
852打开与关闭的处理%
82应用层信息传入
8;2驱动层信息传出;
后记:我的闲言碎语