本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:
http://blog.csdn.net/zuishikonghuan/article/details/48545623
驱动程序是操作系统和硬件通讯的桥梁,同时,驱动程序可以实现很多特殊功能,比如,虚拟光驱(虚拟设备),内核级hook,文件系统透明加密(过滤驱动),修改Windows内核等等
并非所有驱动程序都必须由设备的设计方编写。如果设备根据已发布的硬件标准来设计。这时驱动程序可以由 Microsoft 编写,设备设计者无须提供驱动程序。
并非所有的驱动程序都与硬件关联。某些驱动程序与任何硬件设备根本不关联。 例如,如果需要访问内核,或者实现虚拟设备,过滤设备等等,需要通过编写驱动程序实现。提供一个用户模式下运行且提供用户界面的应用程序,还需要在内核模式下运行且可以访问核心操作系统数据的驱动程序。这个驱动程序可以称为“软件驱动程序”。软件驱动程序与硬件设备不关联。还有个例子是一些屏幕录像软件通过驱动程序直接读取屏幕,而不是从应用层调用API截图,实现硬件加速。
在正式开始介绍驱动开发之前,我们需要先来了解一下基本的概念。
1。驱动程序的运行级别
以内核模式驱动程序为例,用户模式驱动是后来才有的。