如果你已经在上一阶段写过几个能加载、能卸载的空驱动,也知道该在哪里下断点看调用栈,那这门《Windows驱动编程基础(下)》值得接着看。它面向的不是刚装好 Visual Studio 的新手,而是已经能编译出第一个 sys 文件、但对"驱动到底怎么跟系统打交道"还比较模糊的人。
它解决的是哪些具体工作场景
上半部分通常停在驱动入口和基本通信上,真正让初学者卡住的问题往往出现在下半程:设备对象和符号链接怎么建才规范、应用程序发来的 IOCTL 请求怎么区分缓冲区方式、多个请求同时到达时 IRP 该挂起还是排队、驱动卸载时那些没处理完的请求怎么收尾。这些都是调试时会直接蓝屏的地方,也是在驱动岗面试里容易被追问的细节。
这门课的内容基本围绕这些场景展开。学完之后,你应该能独立完成一个可被用户态程序正常打开、发送控制码、读取返回数据的驱动,而不是只会跑通示例代码。
学完能独立做什么
- 为自己的驱动创建控制设备对象,并让用户态程序通过符号链接打开它
- 正确处理缓冲区和直接 I/O 两类 IOCTL,知道各自的适用条件和内存布局
- 在需要等待时把 IRP 挂起,配合取消例程处理中途被打断的请求
- 写出能通过驱动程序验证器基本检查的卸载流程,减少卸载后残留导致的崩溃
- 看懂 WinDbg 里与 IRP、设备对象相关的常见调用栈,定位是驱动自身还是上层调用的问题
这些能力合起来,大致对应"能给别人写一个简单的功能驱动并交付"的水平,离独立做完整产品驱动还有距离,但已经能接住实际开发中的基础任务。
资料适合什么基础的人
比较合适的是:会 C 语言、了解 Windows 用户态 API、知道中断和内存分页这些操作系统基本概念,并且已经跟着上半部分或别的入门材料写过驱动的人。如果你连 WDK 环境都没搭过,或者分不清内核态和用户态的区别,直接看下半部分会比较吃力,建议先补上入口函数和编译配置那一段。
资料形式以章节讲解配笔记为主,笔记部分更适合当作课后复盘和面试前翻看的检索材料,而不是从头背到尾。里面出现的示例代码建议自己敲一遍再编译运行,只看不写,遇到蓝屏时依然会不知道从哪查。
怎么安排学习节奏
按内容顺序走是比较稳的,先弄清设备对象和符号链接这一层,再进到 IOCTL 的分发与缓冲方式,最后做 IRP 挂起和取消。每一节都建议配合一次实际的加载、调试、卸载流程,养成用 WinDbg 看状态的习惯,而不是只确认"程序没报错"。
如果时间有限,可以优先把 IOCTL 缓冲方式和 IRP 挂起这两块吃透,它们在真实驱动里出现频率最高,也是排查问题时最常回看的地方。整套资料不算长,但需要边看边动手,一周内集中推进比拖成一个月效果更好。
53d3bb550c9be4a994a37f459da3df06_51f9c434153885649b14954249418b863e6aed.webp 下载附件 保存到相册 2025-1-10 16:26 上传
课程推荐
《Windows驱动编程基础(下)价值200》53d3bb550c9be4a994a37f459da3df06_51f9c434153885649b14954249418b863e6aed.webp 下载附件 保存到相册 2025-1-10 16:26 上传【技能收获】学完可掌握:核心实战技能、项目驱动学习。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。
视频目录(33 节)
课程目录
* 1 从DeviceIoControl说起.mp4
* 2 控制码通信.mp4
* 3 内存的使用.mp4
* 4 端口的读写和PC喇叭的驱动.mp4
* 5 在内核执行应用层代码.mp4
* 6 分层驱动与键盘过滤.mp4
* 7 IoMarkIrpPending.mp4
* 8 列举设备栈.mp4
* 9 系统调用.mp4
* 10 查找SSDT以及系统调用.mp4
* 11 第二种查找SSDT的方法.mp4
* 12 更强的WriteProcessMemory.mp4
* 13 PCI配置空间背景.mp4
* 14 PCI配置地址空间.mp4
* 15 列举PCI设备.mp4
* 16 即插即用概述.mp4
* 17 设备接口.mp4
* 18 驱动安装过程详解一.mp4
* 19 驱动安装过程详解二.mp4
* 20 Filter_Resource.mp4
* 21 Start_device.mp4
* 22 资源使用.mp4
* 23 获得物理设备对象和总线信息.mp4
* 24 确保驱动不被卸载.mp4
* 25 电源管理.mp4
* 26 电源状态的上升和下降.mp4
* 27 电源管理优化.mp4
* 28 过滤驱动框架.mp4
* 29 过滤驱动的概念和安装.mp4
* 30 IRP处理总结.mp4
* 31 物理设备对象的创建.mp4
* 32 总线设备安装结果略看.mp4
* 33 总线驱动处理PDO的IRP.mp4






