驱动
无名大贝
金融IT工程师
展开
-
Windows 驱动程序设计(一)
用户模式和内核模式 Windows总体上分为内核模式(Kernel Model)和用户模式(User Mode)。CPU一般有多个特权层,如Intel的386 CPU有四个特权层,分为Ring 0-3,Ring 0权限最高。内核模式运行在Ring 0层,用户模式运行在Ring 3层。驱动程序是运行在内核层,其相当于windows 内核的 “补丁”,针对不同硬件设备会有不同的 “补丁”。原创 2014-03-28 11:33:31 · 2727 阅读 · 0 评论 -
Windows驱动程序设计(三)
第四章 驱动程序的基本结构数据结构是计算机控制程序的核心,I/O 管理器定义了一些数据结构,这些数据结构式编写驱动程序锁必须掌握的。Windows驱动程序中重要的数据结构驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之一一对应,并且这个驱动对象是在驱动加载时候被内核中的对象管理器程序创建的。去东方对象用DRIVER_OBJECT数据结构表示:type原创 2014-04-01 12:36:25 · 1033 阅读 · 0 评论 -
Windows 驱动程序设计(二)
第三章 Windows驱动编译、环境配置、安装及调试调用约定调用约定指函数在被调用时会按照不同的规则翻译成不同的汇编代码。以堆栈为例进行解释,当调用一个函数的时候,首先将返回地址压入栈中,紧接着会将函数的参数依次压入堆栈,当函数返回时会以相反的顺序依次退出堆栈,因此函数在被调用前和调用后的堆栈保持平衡。 不同的调用约定,会指明不同参数的入栈顺序,还会支出不同的清理堆栈的方法原创 2014-03-29 10:34:48 · 1556 阅读 · 0 评论 -
驱动中PAGED_CODE的作用
简而言之,Windows并没有将运行在Ring 0的代码全部视为内核,而是区分为Kernel和Executive,Executive可以理解为“管理层”的意思,解释为“执行体”不合理。其中,Kernel是狭义的内核,里面的代码包括用到的数据,都是常驻在物理内存中的,不支持分页机制。而除此之外的代码和数据,是支持分页机制的,并且可以被交换到pagefile中,即并非总是在物理内存中的。转载 2014-10-17 10:36:19 · 2516 阅读 · 0 评论