内核模式驱动的主要组成部分:

2024-05-03 23:52

1. 内核模式驱动的主要组成部分:

根据地址空间、代码权限和职责的不同,Windows NT内部划分为两个截然不同的部分。地址空间的享用方式也非常容易理解,整个32位系统的4GB内容被划分为两个相等的部分,用户模式(user-mode)的进程使用的地址空间被映射到低位的2GB上(地址范围00000000 - 7FFFFFFFh),而高位的2GB(地址范围80000000h - 0FFFFFFFFh)则供操作系统的组成部分来使用,如设备驱动程序、系统内存池、系统使用的数据结构等,在这部分中,内存共享的权限和职责等方面就要复杂一点了。下面就是用户模式进程的一些简单分类:◎ 系统支持进程--如Logon进程(位于\%SystemRoot%\System32\Winlogon.exe)◎ 服务进程--如Spooler进程(位于\%SystemRoot%\System32\spoolsv.exe)◎ 用户应用程序--任何Win32、Windows 3.1、DOS、POSIX或者OS/2程序◎ 子系统--Windows内置3个子系统:Win32(位于\%SystemRoot%\System32\Csrss.exe)、POSIX子系统(位于\%SystemRoot%\System32\Psxss.exe)和OS/2子系统(位于\%SystemRoot%\System32\Os2ss.exe),在Windows XP以及后续的操作系统中,POSIX和OS/2子系统已经被去掉了。而下面是内核模式的一些模块:◎ 运行模块--内存管理、进程和线程的管理、安全机制等◎ 内核--线程调度、中断、异常的分派等(运行模块和内核位于\%SystemRoot%\System32\Ntoskrnl.exe)◎ 设备驱动程序--硬件设备驱动程序、文件系统和网络驱动程序◎ 硬件抽象层(Hardware Abstraction Layer, HAL)--将内核、设备驱动程序和运行模块和具体的硬件平台隔离开(位于\%SystemRoot%\System32\Hal.dll)◎ 窗口和图形系统--实现GUI函数,如处理窗口、用户界面的控制和绘画等(位于\%SystemRoot%\System32\Win32k.sys)

内核模式驱动的主要组成部分:

2. 内核模式驱动的设备驱动程序的分类:

Windows NT支持的设备驱动程序的范围很广,它们的分类如下:用户模式的驱动程序:◎ 虚拟设备驱动程序(Virtual Device Drivers/VDD)--用户模式的组件,用于为16位的MS-DOS应用程序提供虚拟的执行环境,虽然和Windows 95/98里面的VxD从功能上看起来是差不多的,但实际上两者根本不同。◎ 打印驱动程序--将与设备无关的图形转换到和打印机相关的指令内核模式驱动程序:◎ 文件系统驱动程序--实现标准的文件系统模型◎ 传统设备驱动程序--用于在没有其他驱动程序帮助的情况下控制硬件设备,它们是为老版本的Windows NT系统所写的,但是也可以不加修改地运行在Windows 2000/XP/2003系统上◎ 视频驱动程序--不用多介绍了吧?◎ 流驱动程序--支持多媒体设备,如声卡◎ WDM驱动程序--即Windows Driver Model,WDM包括对Windows NT电源管理和即插即用的支持,WDM可以在Windows 2000、Windows 98和Windows ME下实现,所以在这些操作系统下,WDM驱动程序在源代码级别是兼容的,在有些情况下,在二进制代码级别上也是兼容的在不同的资料中,对驱动程序的分类方法可能完全不同,但这并不是问题。从名称理解,设备驱动程序是用于控制某个设备的,但这个设备并不一定指的是物理上存在的设备,它也可以是虚拟设备。从文件结构上讲,设备驱动程序就是一个普普通通的PE格式文件,就像其他EXE或者DLL文件一样。设备驱动程序是一个可装载的内核模式模块,一般以SYS为扩展名。他们之间的不同点在于两种的装载方法是完全不同的。实际上,我们可以把设备驱动程序理解成一个内核模式的DLL,用于完成在用户模式下所不能完成的功能,本质上的不同就在于我们无法直接存取设备驱动程序的代码和数据(注:DLL的代码和数据是可以被直接存取的,这方面的资料可以参考《Windows环境下32位汇编语言程序设计一书》中的DLL一章),唯一的存取方式是通过I/O管理器,它提供了简单的驱动程序管理环境。刚开始学习KMD的开发的时候,你可能感觉自己根本就是一个菜虫(旁白:就是比菜鸟还低级,呵呵~~~),因为你以前用Windows API开发程序的经验在这里根本帮不上忙,即使你以前写过n多个(n趋向无穷大……)用户模式下的应用系统也没用。内核提供了完全不同的函数和数据结构,以至于你要从头开始了解,而且资料奇缺无比,一般情况下,可供参考的只有头文件。

最新文章
热门文章
推荐阅读