出版时间:2011-3 出版社:电子工业出版社 作者:张佩,马勇,董鉴源 页数:506
Tag标签:无
前言
国内内核开发方面的书籍特别少,一个原因是很多技术牛人,没有时间或机会把自己掌握的知识编辑成书。真的很遗憾。希望我砸出这块砖头后,后面会在书店里看到无数的翡翠之作。 相比较国外的程序员,国内程序员在学习内核驱动开发的时候,学习曲线特别长,主要原因是没有趁手可用的资料。有一些初学者联系我,倒出的苦水大多是:资料太少,技术太难,不知从何下手。我给出的建议多是希望他们努力学习WDK中的现成文档,并推荐一些经典的英文电子档。但大多数初级学习者,并不满足我这个答案——他们希望有中文资料。这时候,我会向他们推荐《深入解析Windows操作系统》或者《软件调试》,有时候,我还会谨慎地向他们推荐《驱网核心技术》丛书。 很高兴有机会,写成这样一本书。本书的另外两位作者是马勇和董鉴源,他们分别写了第1章和第2章。写《竹林蹊径——深入浅出Windows驱动开发》花了我整整八个月的时间,有半年左右,我把所有的时间都花在上面,不上班,不娱乐。这本书是我的劳苦之作。 我利用写作的机会,纵深渗透学习了不少知识。与其说它是在展示个人才华,不如说是做了一次自我进修和测试。我做不到文采飞扬,能保证的是负责任的态度。此书在写作过程中,增删若干遍,完稿之后,请多位前辈老师审稿。我现在唯一期望的是书中的内容,确实能够对读者起到帮助、参考的作用。 本书特色 《竹林蹊径——深入浅出Windows驱动开发》这本书的一个最大特点是插图和示例多,对涉及到的大部分知识,能做到一定深度的挖掘。谭文跟我说,无法把自己的技术经验完全写出来。我当然同意他这句话的正确性;但写作的过程中,我仍然尽最大的可能,把技术和经验文字化、图形化,尽量做到由浅入深,脉络分明——这是我个人的最高目标。 平时给别人讲某个知识点的时候,哪怕是最简单的,我喜欢讲得360度面面俱到。说了一层,爱说下面还有一层。讲了烧水之釜,还要介绍釜底之薪。有人不喜欢这样,但我喜欢。如果以后还写书,我仍会保持这一点。 本书主要内容 本书主要包含这几个方面的内容:WDF框架、驱动测试、音视频编程、驱动安装。这其中,最费精神的是WDF框架相关章节。 WDF是目前和将来驱动开发的大势所趋。如果初学者因为资料的关系,而紧握着WDM架构的双手的话,他一定要留神,不要冷落了旁边正如日中天的WDF。搞技术,特别是在Windows平台上,不建议大伙具有怀旧情绪,跟着形势走是必然的。 书中有四章内容介绍WDF。笔者如农夫翻地一般,把WDF奇异表面下的具体实现做了一定的揭露。笔者饶有兴趣地为大家分析WDF的对象模型,而从Wdf01000符号文件中揭露的内部结构体定义,能令很多人吃惊不小。 用WDF框架编写驱动,要比WDM方便、简单一半以上。本书中介绍了使用WDF框架进行USB和1394编程的内容。由于USB的运用之广,使USB驱动成为Windows内核驱动中的显学。驱动开发网专门辟有“USB驱动”版块,并几乎是最聚人气的地方。为配合USB一章的写作与学习,笔者专门请朋友精心设计了一款USB驱动学习开发板。读者在本书中的多处地方,都能看到它的玲珑身影。 驱动测试方面包括两章内容,一章以WDF驱动测试为中心进行介绍,另一章介绍了Windbg调试命令。曾经的王者SoftIce湮没不闻后,Windbg成了唯一的内核调试利器,不可不掌握。 音视频驱动向来都比较小众,做相关开发的公司和个人都很少,资料也就更加少。本书有两章内容介绍音视频开发,一章介绍AVStream小端口架构,一章介绍酷酷的ASIO音频驱动,并以虚拟ASIO声卡的创新技术,为有兴趣的读者带去福音。 本书最后三章,介绍驱动安装有关的知识。一章介绍驱动安装的原理及系统模块,一章介绍INF安装文件的技术细节,一章以示例介绍如何编写驱动安装软件。看过这些内容后,试着为你的驱动写一个安装软件,会很酷。 本书读者对象 本书适合一般程序员 对WDF感兴趣,准备开发VSB或1394设备驱动者 下面要说一些和技术无关的东西。 在本书写作过程中,有许多书外的记忆。比如,夏天我工作的时候,我女儿常常站在床头,猛地一下用手扑打我的笔记本,电脑屏幕就倾了下去,一阵惊叫。 一次两章隔夜刚新鲜写好的内容,保存在移动硬盘中,第二日在另一台电脑上开机,却怎么都找不到了。翻遍整个系统,用了N种数据、磁盘恢复工具,都无济于事,踪影全无。那种无助得想哭的感觉,一直记在心间(这个问题我后来把它再现了,可以认定是Windows 7操作系统的BitLocker功能在休眠唤醒处理上的一个Bug)。 致谢 感谢我的好朋友,谭文。是他推荐我主笔这本书的写作。这套系列中的《天书夜读——从汇编语言到Windows内核编程》和《寒江独钓——Windows内核安全编程》出版后,大家都很忙。谭文很信任我,推荐我写《竹林蹊径——深入浅出Windows驱动开发》。谭文是我以前的同事,湖南人,故在网上号楚狂人,赫赫有名,散文随笔一级好,技术文章有散文风。谢谢李冰编辑和文字编辑葛娜女士,她们的信任和支持,使我有可能完成这本书。 感谢本书两另外两位作者,他们贡献了第1章和第2章。 感谢潘爱民老师,他为本书写了序,令我有蓬荜生辉之感。 感谢张银奎老师,张帆兄,他们也对本书给予了鼓励,并写了推荐语。 我要感谢所有照顾过我的亲人们:谢谢我大阿姨,她现在只在天上看着我们。她以力排众议的气势,关心照顾过我。谢谢红兵表哥,他正好大我一轮,学习成绩冠于全镇。当初我老爱从他那里偷书,那些书正是我童年和少年时代仅有的课外书。谢谢小姨父,父执辈中他是唯一给我严肃、客观教育的人。感谢我舅舅,他给我很多帮助。以前,我总是把去上海说成“去我舅舅那”。 谢谢我所有的亲人们。 感谢双方父母,感谢他们所有的辛勤付出。 最后,感谢我的妻子,近两年以来,她离职在家做专职母亲,好像把十几年的事情放在一两年里做了,岁月催人老,我把她累坏了。 最后是一首五言八句,会意书名曰:《竹林蹊径》 荫荫翠竹百亩林, 结庐恒爱此中景。 寻常偶遇方外客, 殷勤指点通幽径。 张佩
内容概要
本书是作者根据多年的工作学习经验,总结的第一手驱动开发资料。本书更多的是经验之谈,一些实践中的小发现小意外,颇为书中内容添彩。 本书的特色之一,是对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章 Hello World驱动 1.1 从Hello World开始 1.2 虚拟环境 1.3 小结 第2章 商业驱动开发技术 2.1 建立开发调试环境 2.2 64位驱动开发技术 2.3 驱动程序的发布与测试 2.4 小结 第3章 WDF概述 3.1 主要特点 3.2 框架视图 3.3 兼容性 3.4 对象模型 3.5 驱动对象和设备对象 3.6 IO模型 3.7 PNP和电源模型 3.8 小结 第4章 WDF USB设备驱动开发 4.1 USB设备硬件结构 4.2 USB软件结构 4.3 内核开发 4.4 数据I/O操作 4.5 设备控制 4.6 用户程序 4.7 小结 第5章 WDF 1394驱动开发 5.1 1394一席谈 5.2 发送请求 5.3 总线重置与计数 5.4 PNP操作 5.5 异步通信 5.6 等时通信 5.7 其他操作 5.8 安装与测试 5.9 小结 第6章 内核驱动C++编程 6.1 驱动中的类 6.2 类封装的驱动程序 6.3 多态 6.4 小结 第7章 WDF驱动测试 7.1 WDF错误 7.2 WDF扩展调试命令 7.3 WDFTester 7.4 WDFVerifier 7.5 小结 第8章 调试命令详解 8.1 概述 8.2 符号与源码 8.3 进程与线程 8.4 断点 8.5 内存命令 8.6 小结 第9章 内核同步 第10章 音频驱动开发 第11章 ASIO虚拟声卡 第12章 设备驱动安装入门 第13章 深入解析INF文件 第14章 设计驱动安装程序 附录A CY001 USB开发板 附录B VisualKD + VMWare实现单机内核调试
图书封面
图书标签Tags
无
评论、评分、阅读与下载