delphi驱动开发

delphi驱动开发

ID:33410912

大小:245.47 KB

页数:86页

时间:2019-02-25

delphi驱动开发_第1页
delphi驱动开发_第2页
delphi驱动开发_第3页
delphi驱动开发_第4页
delphi驱动开发_第5页
资源描述:

《delphi驱动开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Delphi驱动开发研究序篇—基础知识本教程讲述了如何在以WindowsNT为基础的操作系统上用Delphi开发内核模式驱动程序(KMD),包括NT4.0、2000、XP和2003等操作系统。开发Windows95/98/ME使用的VxD驱动程序方面的知识并不在本教程讲述的范围内。一、内核模式驱动结构概述1.主要组成部分根据地址空间、代码权限和职责的不同,WindowsNT内部划分为两个截然不同的部分。地址空间的享用方式也非常容易理解,整个32位系统的4GB内容被划分为两个相等的部分,用户模式(user-mode)的进程使用的地址空间被映射到低位的2GB上(地址范围0000

2、0000-7FFFFFFFh),而高位的2GB(地址范围80000000h-0FFFFFFFFh)则供操作系统的组成部分来使用,如设备驱动程序、系统内存池、系统使用的数据结构等,在这部分中,内存共享的权限和职责等方面就要复杂一点了。下面就是用户模式进程的一些简单分类:◎系统支持进程--如Logon进程(位于%SystemRoot%System32Winlogon.exe)◎服务进程--如Spooler进程(位于%SystemRoot%System32spoolsv.exe)◎用户应用程序--任何Win32、Windows3.1、DOS、POSIX或者OS/2程序

3、◎子系统--Windows内置3个子系统:Win32(位于%SystemRoot%System32Csrss.exe)、POSIX子系统(位于%SystemRoot%System32Psxss.exe)和OS/2子系统(位于%SystemRoot%System32Os2ss.exe),在WindowsXP以及后续的操作系统中,POSIX和OS/2子系统已经被去掉了。而下面是内核模式的一些模块:◎运行模块--内存管理、进程和线程的管理、安全机制等◎内核--线程调度、中断、异常的分派等(运行模块和内核位于%SystemRoot%System32Ntosk

4、rnl.exe)◎设备驱动程序--硬件设备驱动程序、文件系统和网络驱动程序◎硬件抽象层(HardwareAbstractionLayer,HAL)--将内核、设备驱动程序和运行模块和具体的硬件平台隔离开(位于%SystemRoot%System32Hal.dll)◎窗口和图形系统--实现GUI函数,如处理窗口、用户界面的控制和绘画等(位于%SystemRoot%System32Win32k.sys)86/862.内核模式和用户模式Intelx86体系结构的处理器定义了4个级别的权限(称为Ring),Windows系统使用了Ring0(供特权模式使用)和Ring3

5、(供用户模式使用),Windows系统只使用了2个级别的权限级别的原因是为了和其他一些硬件系统兼容,这些硬件系统只有2个级别的权限,如CompaqAlpha和SiliconGraphicsMIPS等。每个用户模式的进程有其私有的地址空间,这些进程在最低的权限级别下运行(称为Ring3或者用户模式),它们不允许执行CPU的特权指令,对系统所属的数据、地址空间以及硬件等的访问也是被严格限制的,例如,如果某个用户程序访问4G地址空间中的高位2G,那么系统就会立即将其终止执行。要注意的是,进程调用系统功能的时候,可以切换到内核模式执行,但是调用结束后,就返回到用户模式了。用户模式的

6、进程总是被认为是对操作系统稳定性的潜在威胁,所以它们的权限被严格地限制,任何触及这些限制的举动都将使进程被终止。而内核模式的组件则可以共享这些受保护的内核模式内存空间,在特权级别下运行(也称为Ring0),允许执行任何CPU指令,包括特权指令,可以无限制地访问系统数据、代码和硬件资源。内核模式代码运行在系统地址空间中,并总是被认为是可信任的,一旦被装载运行后,驱动程序就是系统的一部分,可以无限制地做任何事情。总的来说,用户模式程序被完全从操作系统隔离,这对操作系统的完整性来说是件好事情,但对某些种类的应用程序来说就太头痛了,比如Debug工具。幸运地是,这些在用户模式几乎不

7、可能完成的任务完全可以通过内核模式的驱动程序来完成,因为这些驱动程序的操作是不受限制的。因此,如果你打算从用户模式存取操作系统内部的数据结构或者函数的话,唯一的方法就是将一个内核模式驱动程序装载到系统的地址空间中(并调用它),这是很简单的事情,操作系统完全支持这样的操作。二、WindowsNT设备驱动程序1.设备驱动程序的分类WindowsNT支持的设备驱动程序的范围很广,它们的分类如下:用户模式的驱动程序:◎虚拟设备驱动程序(VirtualDeviceDrivers/VDD)--用户模式的组件,用于为16位的MS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。