序言] 
很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资
料少有关系.大多学的驱动开发资料都以英文为主,这样让很多驱动初学者很头疼.本人从
事驱动开发时间不长也不短,大概也就3~4年时间.大多数人都认为会驱动开发的都是牛人,
高手之类的.其实高手,牛人不是这样定义的.我们在学习驱动开发之前,一定要明白一个道
理:术业有专攻,不要盲目跟风.

[贡献者] 
1> defddr 看雪学院 
2> StudyRush 看雪学院

[本内容适用环境及工具] 
1> Windows系统下 
2> VC6.0以及VS2003版本以上 
3> Windows驱动开发包(DDK(老版本) WDK(新版本)) 
4> 有能力着可以安装VMWare

[本内容适用群体] 
1> 具有C/C++语言基础的人 
2> 具有80x86汇编基础的人 
3> 具备高中以上文化水平的逻辑思维

[具备Windows系统理论书籍] 
1>  Windows核心编程  
2>  Win32多线程程序设计  
3>  深入解析Windows操作系统  
4>  Windows操作系统原理

FAQ1:为什么需要[具备Windows系统理论书籍]这4本书? 
答:驱动是Windows系统的一个重要的组成部分,深入Windows系统核心的一个体系,就
因为驱动跟系统内核联系得十分紧密,所以涉及了不少系统的基础理论以及原理.因此在学
习驱动开发之前必须先明白Windows 系统的基础开发理论,Windows系统的运作原
理,Windows系统的架构体系.那么我提供的上面4本书是目前市面上我认为最经典最全面
的书籍了.

[具备Windows驱动开发书籍] 
1>  Windows驱动开发详解  
2>  Windows设备驱动程序WDF开发

FAQ2:为什么需要[具备Windows驱动开发书籍]这2本书? 
答:假设你对Windows系统的基础理论扎实了,也看完了所说的[Windows系统理论书籍]
这4本书,而且你还从事开发过Windows程序或者大程序的经验者.那么你进入Windows
驱动开发的时候,需要一本经典的驱动入门开发书籍即可正确入门.现在我提供了
[Windows驱动开发书籍]这2本书完完全全针对Windows驱动开发入门而编写的书籍.
当然我首要推荐<Windows驱动开发详解>这本书.本书的内容在目前来说,针对驱动开发
的讲解时非常到位了.包含了驱动开发理论 配置 驱动体系 等等......是一本不可多得
的好书.那么第2本,其实有点滥竽充数,但是他里面有少少涉及到WDF这个最新的驱动开
发理论的讲解,大家也就凑合着吧.

[具备Windows调试基础理论书籍] 
1>  软件调试  
2>  Windows用户态程序高效排错

FAQ3:为什么需要[具备Windows调试基础理论书籍]这2本书? 
答:在开发驱动的情况下,你少不了要调试驱动程序.那么如何调试驱动程序呢? Windows
已为你考虑到这个问题了并开发了一套强有力的调试工具:Windbg .如何学习这个工具的
调试呢?那么现在市面上只有这2本书针对Windbg讲解得还比较到位,至少针对调试命令
的使用,已经用中文讲解了,大家可以通过2本书先大概了解Windbg的调试命令,然后再进
一步进行GOOGLE搜索并深入学习.

[具备汇编基础理论书籍] 
1>  汇编语言  作者:王爽 
2>  80x86汇编语言程序设计教程 [绿皮版 或者 黑皮版]

FAQ4:为什么需要[具备汇编基础理论书籍]这2本书? 
答:由于在Windows环境下开发驱动,从而有个弊端,就是Windows的WDK,DDK文档少得
可怜,很多说明多是模糊的.因此导致我们开发的驱动极其不稳定,这时就需要逆向
Windows驱动的机制来加深理解.在一个由于驱动的不稳定性,会导致系统蓝屏,有时错误
并不会直接定位到你的代码,这时就需要汇编来分析错误的缘由.就如我前面介绍的[具备
Windows调试基础理论书籍] 基本是用汇编语言来阐述调试技术.

[驱动开发扩展书籍] 
1>  寒江独钓-Windows内核安全编程  
2>  Windows内核原理与实现  
3>  Rootkit Windows内核安全防范  
4>  Windows内核情景分析

FAQ5:为什么需要[驱动开发扩展书籍]这4本书? 
答:熟话说:学无止境,驱动开发领域是一个很庞大的体系,这归根于驱动框架多样化而决定
的.驱动包含了:文件驱动,磁盘驱动,显卡驱动,网络驱动,等等不同的种类,每一种类就是
一个领域,你决定你的能力需要扩展到多方面,那么你可以考虑先我这里提供的这4本书来
学习,通过阅读这3本书,你会发现驱动可以做很多你意想不到的事情.本人从事开发驱动
将近4年,也仅仅涉及 文件驱动,磁盘驱动以及一些小型驱动而已.这些的学习我也仅仅是
根据需求来进行选择性学习.每个人都有自己的能力极限,大家要量力而行.

备注:网友可以推荐其他好书

[推荐学习资源站点] 
1> http://forum.driverdevelop.com/ 国内唯一个知识点比较全的驱动交流网站 
2>  http://www.osronline.com/  国外著名的驱动开发社区 
3> http://www.microsoft.com/whdc/default.mspx 微软官方驱动开发技术支

[推荐正确学习方式] 
1> 认真阅读我提供的参考书籍 
2> 多使用Google来解决你遇到的问题 
3> 多尝试用驱动写你自己喜欢的功能 
4> 提升你英文阅读能力,因为大部分有价值的资料来自于国外 
5> 不要急于求成,不要浮躁,不要把驱动开发技术当做一种炫耀

windows驱动开发学习相关推荐

  1. Windows驱动开发学习笔记(七)—— 多核同步内核重载

    Windows驱动开发学习笔记(七)-- 多核同步 基础知识 并发与同步 分析 InterlockedIncrement 原子操作相关API 内核文件 多核同步 临界区 示例一:错误的临界区 示例二: ...

  2. Windows驱动开发学习笔记(六)—— Inline HOOK

    Windows驱动开发学习笔记(六)-- Inline HOOK SSDT HOOK Inline Hook 挂钩 执行流程 脱钩 实验一:3环 Inline Hook 实验二:0环 Inline H ...

  3. Windows驱动开发学习笔记(五)—— SSDT HOOK

    Windows驱动开发学习笔记(五)-- SSDT HOOK 系统服务表 系统服务描述符表 实验一:通过代码获取SSDT表地址 通过页表基址修改页属性 方法1:修改页属性 方法2:修改CR0寄存器 实 ...

  4. Windows驱动开发学习笔记(四)—— 3环与0环通信(常规方式)

    Windows驱动开发学习笔记(四)-- 3环与0环通信(常规方式) 设备对象 创建设备对象 设置数据交互方式 创建符号链接 IRP与派遣函数 IRP的类型 其它类型的IRP 派遣函数 派遣函数注册位 ...

  5. Windows驱动开发学习笔记(三)—— 内核空间内核模块

    Windows驱动开发学习笔记(三)-- 内核空间&内核模块 内核空间 实验 第一步:编译如下代码 第二步:将 .sys 文件拷贝到虚拟机中 第三步:部署 .sys 文件并运行 第四步:创建一 ...

  6. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  7. Windows驱动开发学习笔记(一)—— 环境配置第一个驱动程序

    Windows驱动开发学习笔记(一)-- 环境配置&第一个驱动程序 环境配置 第一个驱动程序 环境配置 安装VS2010:https://pan.baidu.com/s/1uZWWxCtB60 ...

  8. Windows驱动开发学习记录- x86 InlineHook字节数计算(使用Hook Api lib 0.4 for C)

    Hook Api lib 0.4 for C原文及源代码地址链接 < [原创]Hook Api lib 0.4 for C > 一.使用背景 最新在学习SSDT Inline Hook,一 ...

  9. Windows驱动开发学习记录-驱动中快速重启关闭计算机之一

    引言 关于快速重启和关闭计算机,网上有不少软件在Ring3下调用ZwShutdownSystem (NtShutdownSystem)来实现,虽然速度很快,但还至少经历一些流程,比如向设备驱动发送停机 ...

最新文章

  1. [USACO]奶牛博览会(DP)
  2. springboot2.3.4集成EhCache缓存框架完整代码
  3. python定义16进制数组_python 文件转成16进制数组的实例
  4. 金乡高考成绩查询2021,金乡一中举行2021届高三年级一模成绩分析暨表彰大会!现场颁奖...
  5. .NET MVC Scripts.Render 上下文不存在问题解决方法
  6. 教你构建MySQL主从结构,实现基于SSL加密的主从同步机制。
  7. java 成员函数_Java继承中成员变量和成员函数的覆盖
  8. [转]各种互斥量的总结
  9. linux每日命令(11):cat命令
  10. 空间波束形成matlab仿真,自适应波束形成Matlab仿真
  11. IO中write函数
  12. 为什么爱因斯坦反对《自然辨证法》
  13. TileMap大型地图网格属性设置
  14. ubuntu16.04 鼠标右键没有压缩/解压 选项
  15. 学校网站建设解决方案_学校网站建设方案怎么写
  16. 顺口溜记23种设计模式
  17. 宿主机使用wifi时虚拟机如何连网
  18. GPIO的基本概念——基于STM32F767IGT6
  19. MATLAB调用工业相机读取图像数据
  20. 《万历十五年》--黄仁宇

热门文章

  1. rabbitmq 持久化_RabbitMQ原理与相关操作(三)消息持久化
  2. 配置了坐标还是找不到serv_你那么努力,为何还是找不到工作?从优势发展观来看个人职业发展...
  3. python中str和input_python中input()与raw_input()的区别分析
  4. JAVA入门级教学之(匿名内部类)
  5. java dom cdata_java – 通过DOM解析器从XML处理CDATA
  6. java porm.xml_通过Maven仓库安装Spire.PDF for Java
  7. kafka学习_Kafka 学习笔记01
  8. mysql审计 社区版有吗_mysql 5.6 社区版上审计功能,不扯皮
  9. python基本概念_python基本概念-关键要素
  10. java maven junit_【JUnit】JUnit 与 maven 集成