《天草驱动开发教程》1.环境的搭建(虚拟机+WinDbg) 2.内核的环境与数据类型 3.驱动程序数据结构 4.生成过滤设备 5.绑定过滤设备 6.串口获得实际数据 7.完整的串口过滤 8.第一个HelloWDM 9.键盘过滤从敲击到内核 10.HelloWDM.inf文件剖析 11.Win驱动程序中重要数据结构 12.NT式驱动的基本结构 13.Unload与WinObj观察 14.WDM驱动程序的基本结构 15.WDM的DriverEntry和AddDevice函数 16.WDM的Unload例程与查看WDM设备对象 17.Win内存管理 18.在驱动中使用链表 19.Lookaside结
天草这套驱动开发教程在圈子里传得比较久,版本也杂。很多人拿到手第一反应是"目录好长",但真正翻过一遍就会发现:它的价值不在章节数量,而在于把 Windows 内核驱动这条线从环境搭建一路铺到了过滤设备实战。如果你想拿它当参照物去对比其他驱动课,或者纯粹想自己拆出可用的部分,下面几个判断可以先看。
市面上不少驱动材料一上来就讲内核对象、IRP 分层,概念堆得很齐,但新手卡在第一步——环境都跑不起来。这套教程把虚拟机加 WinDbg 的双机调试放在最前面,等于先把"能看到内核里发生了什么"这个前提解决掉。后面讲数据结构、链表、Lookaside、运行时函数,都是在这个可调试的基础上展开的。这一点很重要:驱动开发最怕黑箱,看不到蓝屏原因、看不到内存状态,学下去就是背 API。它的编排逻辑是先把观测手段给你,再往里填知识。
从生成过滤设备、绑定过滤设备,到串口获得实际数据、完整的串口过滤,这条路是整门课里最值得精看的部分。原因很直接:过滤驱动是理解驱动分层和 IRP 流转最直观的入口,比纯讲 NT 式驱动结构要具体得多。串口过滤这条线的妙处在于数据量可控,你能实实在在看到数据从设备流进来、被截获、再往上送的过程。键盘过滤那章同理,从敲击到内核,把一次输入的完整链路拆开,配合前面的过滤框架看,理解会顺很多。如果时间有限,建议先啃这块,再回头补基础章节。
教程里既有 NT 式驱动的基本结构,也有 WDM 的 DriverEntry、AddDevice、Unload 例程,还专门讲了 HelloWDM 和它的 inf 文件。这里要提醒一句:这两套模型不是同一时代的产物,混着看容易乱。我的建议是把 NT 式那段当成"最小骨架"来理解,重点看 DriverEntry 和 Unload;WDM 那段则当成"设备栈怎么搭起来"来看,重点在 AddDevice 和 inf 的写法。至于 Unload 配合 WinObj 观察设备对象,那是验证环节,别跳过,动手看一眼比读十遍文字有用。
内核模式下的字符串操作、文件打开与相关操作、注册表创建及其他操作,这几块单独拎出来看会显得琐碎,但它们是写真实驱动绕不开的活。正确的用法不是从头到尾学一遍,而是等你在做过滤设备时遇到"这里要读个配置""这里要记个日志",再回来查这几章。教程把它们放在偏后的位置,本身也是这个意思——先用起来,再补细节。内存管理那几章同理,链表、Lookaside、运行时函数,属于需要时查阅、用多了自然记住的类型。
一句话总结:这不是一门靠顺序刷完的课,而是一套可以按需取用的驱动开发素材。先把观测和过滤实战这两块吃透,剩下的慢慢补,收益最大。
1.环境的搭建(虚拟机+WinDbg) 2.内核的环境与数据类型 3.驱动程序数据结构 4.生成过滤设备 5.绑定过滤设备 6.串口获得实际数据 7.完整的串口过滤 8.第一个HelloWDM 9.键盘过滤从敲击到内核 10.HelloWDM.inf文件剖析 11.Win驱动程序中重要数据结构 12.NT式驱动的基本结构 13.Unload与WinObj观察 14.WDM驱动程序的基本结构 15.WDM的DriverEntry和AddDevice函数 16.WDM的Unload例程与查看WDM设备对象 17.Win内存管理 18.在驱动中使用链表 19.Lookaside结构 20.运行时函数 21.内存管理--(其他) 22.内核模式下的字符串操作 23.内核模式下的文件操作 24.文件的打开 25.驱动对文件的相关操作 26.驱动操作注册表--(创建) 27.驱动对注册表的其他操作 28.派遣函数的简单处理 29.应用程序打开驱动 30.编写更通用的派遣函数 31.跟踪IRP的利器IRPTrace 32.缓冲区的操作与读写 33.缓冲区设置模拟文件读写 34.Sys与Exe文件的通讯A 35.实战EXE和SYS通信(缓冲模式) 36.实战EXE和SYS通信(直接) 37.实战EXE和SYS通信-(其它模式)
课程推荐
《天草驱动开发教程》1.环境的搭建(虚拟机+WinDbg) 2.内核的环境与数据类型 3.驱动程序数据结构 4.生成过滤设备 5.绑定过滤设备 6.串口获得实际数据 7.完整的串口过滤 8.第一个HelloWDM 9.键盘过滤从敲击到内核 10.HelloWDM.inf文件剖析 11.Win驱动程序中重要数据结构 12.NT式驱动的基本结构 13.Unload与WinObj观察 14.WDM驱动程序的基本结构 15.WDM的DriverEntry和AddDevice函数 16.WDM的Unload例程与查看WDM设备对象 17.Win内存管理 18.在驱动中使用链表 19.Lookaside结构 20.运行时函数 21.内存管理--(其他) 22.内核模式下的字符串操作 23.内核模式下的文件操作 24.文件的打开 25.驱动对文件的相关操作 26.驱动操作注册表--(创建) 27.驱动对注册表的其他操作 28.派遣函数的简单处理 29.应用程序打开驱动 30.编写更通用的派遣函数 31.跟踪IRP的利器IRPTrace 32.缓冲区的操作与读写 33.缓冲区设置模拟文件读写 34.Sys与Exe文件的通讯A 35.实战EXE和SYS通信(缓冲模式) 36.实战EXE和SYS通信(直接) 37.实战EXE和SYS通信-(其它模式)【技能收获】学完可掌握:教程、开发。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序逐节学习,重点章节可反复观看;学完后整理一份技术笔记或博客,将所学转化为可展示的项目经验。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。