学习windows驱动编程有什么用?

最新系了解下WINDOWS下的驱动开发。驱动给人的最初映像是来控制硬件的,但是我不是想学这个方面,比如杀毒软件都有驱动,我想学这个。谁可以给我解释解释。

驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序。可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。驱动程序在系统中所占的地位十分重要, 驱动程序给我的首先印象应该是面对设备与操作系统的,但是并不一定每一个驱动程序都是与硬件相关联的.在实际的驱动程序开发中不要狭义的理解为硬件,应该理解为设备,硬件也可以叫做设备,在计算机系统中虚拟的也可以是设备,比如 磁盘卷,分区、网络协议、以及其他的设备驱动程序都是设备,那么与硬件无关的驱动程序,比如NDIS驱动,文件过滤系统驱动、磁盘过滤系统驱动程序、文件透明加密驱动... 他们所面对的设备不一样而已 我们形象的理解为NDIS是与网络中间层通讯协议(设备)驱动,卷(设备)过滤驱动,文件系统(设备)过滤驱动。 INTEL的CPU从286开始引入保护模式,特权级分为四层,为:PL0-PL3,对应该操作系统中一般称为RING0-RING3,但其实WINDOWS只用了RING0和RING3两层,分别为OS核心层和用户程序层。驱动程序的强大之处就是因为他在OS核心层(Ring0)运行,在RING0层运行有什么强大的呢,因为操作系统的保护模式限制,在RING3层很多操作受到限制,比如 直接IO硬件、开启/关闭中断等等特权指令必须在RING0层才能执行、如果你在RING3层执行此类代码就会收到一个类似于 【应用程序指令错误】的消息提示,而相关的应用程序也会被WINDOWS终止,在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃,所以在RING3受到限制.必须在RING0下运行. 如何理解驱动程序的重要性与强大之处,再看看我们在操作计算机的内部流程,我们简单的理解为 输入-应用程序--内核-设备,在这里在最后有个‘设备’但是某些操作的流程并不是一定是与设备有关的,可能仅仅是一系列的简单的操作仅仅是与API有关的.比如OpenProcess、 NtTerminateProcess 在应用程序调用的时候,在RING3的最后一步是在NTDLL 最终由NTDLL进入内核 ,基本上可以这样概括一下,就是所有的操作在进入计算机底层以后都要进过相关驱动程序,在这些功能调用上用个形象的说法 应用层是‘标’,那么驱动层就是‘本’,还有就是驱动层作为操作系统与设备(不一定是硬件)的中间桥梁,有着一夫当关的重大作用,哈哈.... 太多说不完,LZ自己找资料看看..
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-23
你所说的WIN下的驱动开发,和软件是没多大联系的,因为硬件驱动目的不是为了人机交互,杀毒软件的那个所谓的驱动,说白了就叫做杀毒引擎,因为其功能和硬件的驱动原理比较类似,因此也可以叫驱动,但更正确的说法应该是核心引擎

无论你是想学硬件驱动也好,杀毒软件什么的也罢,C语言和汇编,以及系统原理都是必备,这些精通了之后再学其他的吧
第2个回答  2013-09-23
驱动的应用方面还是比较广泛的,举例来说,功能很强的键盘鼠标的截获工具就用到这个,还有虚拟光驱工具之类的,你说的杀毒软件的驱动其实是所谓的驱动引擎,也就是杀毒软件的基础核心,不是 windows的驱动开发所说的驱动。
相似回答