如何正确入门Windows系统下驱动开发领域?

[作者]
猪头三
作者网站: http://www.x86asm.com
原文链接: http://blog.csdn.net/Code_GodFather/...0/5975901.aspx

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

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

[本内容适用环境及工具]

1> Windows系统下
2> VC6.0以及VS2003版本以上
3> Windows驱动开发包(DDK(老版本) WDK(新版本))
4> 有能力着可以安装VMWare

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

[具备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> 寒江独钓-Windows内核安全编程
2> Windows内核原理与实现
3> Rootkit Windows内核安全防范
4> Windows内核情景分析

FAQ4:为什么需要[驱动开发扩展书籍]这4本书?
答:熟话说:学无止境,驱动开发领域是一个很庞大的体系,这归根于驱动框架多样化而决定的.驱动包含了:文件驱动,磁盘驱动,显卡驱动,网络驱动,等等不同的种类,每一种类就是一个领域,你决定你的能力需要扩展到多方面,那么你可以考虑先我这里提供的这4本书来学习,通过阅读这4本书,你会发现驱动可以做很多你意想不到的事情.本人从事开发驱动将近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> 不要急于求成,不要浮躁,不要把驱动开发技术当做一种炫耀


[修改补充]
如果你有什么建议和补充的话,请留言跟帖,好让我更加完善这篇文章,以造福更多的初学者。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OVS VxLAN Flow 分析 - 每天5分钟玩转 OpenStack(149)

OVS 的数据流向都是由 Flow 规则控制的&#xff0c;今天我们就来分析 VxLAN 的 Flow 规则。 提个醒&#xff1a;这可能是本教程最烧脑的一节&#xff0c;lets rock it ! 下面分析控制节点上的 flow rule&#xff0c;计算节点类似。 br-int 的 flow rule br-int 的 rule 看上去虽…

制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)

这是 OpenStack 实施经验分享系列的第 1 篇。 OpenStack 的 instance 是通过 Glance 镜像部署的&#xff0c;所以准备镜像是必须要做的工作。本节介绍 Linux 镜像的制作方法&#xff0c;后面还会讨论 Windows 镜像。 下载clould 镜像 最简单的方法是使用标准镜像。主流的Linux发…

NDIS与WinSock关系之自我扫盲

起来真是雷人&#xff0c;最近几天纠结与一个最基本的概念&#xff0c;就是NDIS与WinSock关系&#xff0c;想来想去都没有想明白&#xff0c;真实汗Ing&#xff0c;赶紧找了篇精美的文章来扫盲一下。 原文如下&#xff1a; 文章转自http://www.cnblogs.com/sankye/articles/16…

WDF驱动中KMDF与UMDF区别

众所周知&#xff0c; 早期的Windows 95/98的设备驱动是VxD(Virtual Device Driver)&#xff0c;其中x表示某一类设备。从Windows 2000开始&#xff0c;开发驱动程序必以WDM&#xff08;Windows Driver Model&#xff09;为基础的&#xff0c;但是&#xff0c;如果使用DDK来开发…

根据状态转移表实现时序电路

根据状态转移表实现时序电路 某同步时序电路转换表如下&#xff0c;请使用D触发器和必要的逻辑门实现此同步时序电路 电路的接口如下图所示 A表示输入&#xff0c;Y 表示输出 理解状态转移表&#xff0c;画成状态转移图 timescale 1ns/1nsmodule seq_circuit(input …

Facebook、LinkedIn、Airbnb、Google专家聚首QCon,他们会带来什么?

4月16日~18日&#xff0c;QCon北京2017将在北京国家会议中心举行。现已确认来自海外的Google、Facebook、Airbnb、LinkedIn、Confluent、AppDynamics等公司&#xff0c;国内的百度、阿里巴巴、腾讯、京东、滴滴出行、奇虎360、爱奇艺、微博、bilibili等公司的100余位技术专家担…

Devoxx 2017美国大会首日重要演讲一览

Devoxx美国大会今天开幕。\u0026#xD;\n\u0026#xD;\nDevoxx是北美版的欧洲软件大会&#xff08;European Software Conference&#xff09;。广受追捧的欧洲软件大会由Stephan Janssen在2001年创立&#xff0c;组织方是比利时Java用户组&#xff08;BeJUG&#xff0c;Belgian Ja…

Linux-Android启动之Machine-Init函数

Linux/Android启动之Machine-Init函数 前言&#xff1a; 前面写过两篇Linux/Android的启动过程分析&#xff0c;这篇接着前两篇的知识点进行分析。 Linux/Android的启动过程包括了很多内容&#xff0c;其中有些需要了解&#xff0c;有些则需要在系统移植的时候进行修改。本篇文…

cache 是什么意思 它包括的L1,L2,L3分别是什么东西?

CPU缓存缓存大小也是CPU的重要指标之一&#xff0c;而且缓存的结构和大小对CPU速度的影响非常大&#xff0c;CPU内缓存的运行频率极高&#xff0c;一般是和处理器同频运作&#xff0c;工作效率远远大于系统内存和硬盘。实际工作时&#xff0c;CPU往往需要重复读取同样的数据块&…

边沿检测—以脉冲形式给出信号

边沿检测—以脉冲形式给出信号 题目描述&#xff1a; 有一个缓慢变化的1bit信号a&#xff0c;编写一个程序检测a信号的上升沿给出指示信号rise&#xff0c;当a信号出现下降沿时给出指示信号down。 注&#xff1a;rise,down应为单脉冲信号&#xff0c;在相应边沿出现时的下一个…

贷款秒拒?你可能进了“灰名单”!

灰名单/GRAY LIST今天有客户向我反映&#xff0c;他的征信良好没有半点问题&#xff0c;只有一张信用卡备用&#xff0c;没有一次逾期&#xff0c;但是最近想申请贷款都是被秒拒。他觉得很郁闷&#xff0c;是不是办了假的贷款&#xff1f;他完全不知道被拒的理由&#xff0c;只…

Linux--根文件系统的挂载过程分析

前言&#xff1a; 本篇文章以S3C6410公版的Linux BSP和U-Boot来进行分析&#xff0c;文中所有提及的名词和数据都是以该环境为例&#xff0c;所有的代码流程也是以该环境为例来进行分析。哈哈。如果有不正确或者不完善的地方&#xff0c;欢迎前来拍砖留言或者发邮件到guopeixi…

Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)

这是 OpenStack 实施经验分享系列的第 12 篇。 问题描述 客户报告了一个问题&#xff1a;对 instance 执行 migrate 操作&#xff0c;几个小时了一直无法完成&#xff0c;不太正常。 问题分析 遇到这种情况&#xff0c;第一个要检查的就是 instance 所在计算节点的 nova-comput…

ROM简单实现

ROM简单实现 题目描述 实现一个深度为8&#xff0c;位宽为4bit的ROM&#xff0c;数据初始化为0&#xff0c;2&#xff0c;4&#xff0c;6&#xff0c;8&#xff0c;10&#xff0c;12&#xff0c;14。可以通过输入地址addr&#xff0c;输出相应的数据data 接口信号图如下&…

Fedora gedit 打开txt文件乱码的解决

编码格式不同&#xff0c;fedora打开 windows下的文本文件经常出现乱码。解决办法终端输入命令&#xff1a;$ gsettings set org.gnome.gedit.preferences.encodings auto-detected "[UTF-8, GB18030, GB2312, GBK, BIG5, CURRENT, UTF-16]"$ gsettings set org.gn…

Linux--Sys_Read系统调用过程分析

注&#xff1a; 本片文章以Read函数的调用为例来讲述一下系统对块驱动层的一些处理, 哈哈。如果有不正确或者不完善的地方&#xff0c;欢迎前来拍砖留言或者发邮件到guopeixin126.com进行讨论&#xff0c;先行谢过。 一&#xff0e;Read函数经由的层次模型 首先来了解一下Re…

负债的阶梯,你在第几层?

现在的年轻人成为了消费市场上的中流砥柱&#xff0c;他们为我国的GDP贡献了70%的数据。如今年轻人更愿意刷信用卡、网贷平台借钱消费。尽管在外打拼不容易&#xff0c;但是工作稳定&#xff0c;收入稳定&#xff0c;为了犒劳自己及时享乐&#xff0c;他们选择了背负一点债务。…

OOP术语

OOP术语 类&#xff08;class&#xff09;&#xff1a;包含变量和子程序的基本构建块。Verilog中与之对应的是模块&#xff08;module&#xff09;。对象&#xff08;object&#xff09;:类的一个实例。Verilog中你需要实例化一个模块才能使用它。句柄&#xff08;handle&…

minincom cannot open /dev/modem

昨天用pacman -S minicom命令在archlinux上下载并安装了minicom&#xff0c;但是调用minicom命令时出现如下错误&#xff1a;minicom: cannot open /dev/modem: No such file or directory今天终于找到解决方案&#xff0c;做一个软链接到/dev/ttyS0就可以解决问题了。命令如下…

Android应用程序开发环境的建立

注&#xff1a; 本片文章简单的描述一下Android应用程序开发环境的建立。如果有不正确或者不完善的地方&#xff0c;欢迎前来拍砖留言或者发邮件到guopeixin126.com进行讨论&#xff0c;先行谢过。 一&#xff0e;准备工作... 2 二&#xff0e;安装步骤... 2 1. 安装JDK5.0.…