驱动开发4.基本编程技术一

驱动开发4.基本编程技术一

ID:34450477

大小:939.33 KB

页数:95页

时间:2019-03-06

驱动开发4.基本编程技术一_第1页
驱动开发4.基本编程技术一_第2页
驱动开发4.基本编程技术一_第3页
驱动开发4.基本编程技术一_第4页
驱动开发4.基本编程技术一_第5页
资源描述:

《驱动开发4.基本编程技术一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基本编程技术基本编程技术sigang@mti.xidian.edu.cnsigang@mti.xidian.edu.cn内容内容¢核心模式编程环境核心模式编程环境¢错误处理错误处理¢内存管理内存管理¢字符串处理字符串处理¢访问注册表访问注册表¢访问文件访问文件¢浮点运算浮点运算¢有关调试有关调试普通的普通的WindowsWindows程序编程环境程序编程环境¢用到了哪些函数?用到了哪些函数?¢由谁来提供这些函数的服务?由谁来提供这些函数的服务?¢内核模式编程环境呢?内核模式编程环境呢?核心模式编程环境核心模式编程环境¢右

2、图显示右图显示了了WindowsWindowsNTNT操作系操作系统的某些统的某些组成部组成部分。每个分。每个部分都输部分都输出一些服出一些服务函数务函数核心模式编程环境核心模式编程环境¢I/OI/O管理器管理器(Io(Io前缀前缀))包含许多驱动程序可包含许多驱动程序可以使用的服务函数,后面将有很多对这些以使用的服务函数,后面将有很多对这些函数的描述。函数的描述。例如例如IoCallDriverIoCallDriver调用把调用把IRPIRP交给下层驱动程序处理。交给下层驱动程序处理。¢进程结构模块进程结构模块(Ps(

3、Ps前缀前缀))创建并管理内核创建并管理内核模式线程。普通的模式线程。普通的WDMWDM驱动程序应使用一驱动程序应使用一个独立的线程来循环检测无中断生成能力个独立的线程来循环检测无中断生成能力的设备。如的设备。如PsCreateSystemThreadPsCreateSystemThread创建创建一个内核模式线程一个内核模式线程核心模式编程环境核心模式编程环境¢内存管理器内存管理器(Mm(Mm前缀前缀))控制页表,页表定义控制页表,页表定义了虚拟内存到物理内存之间的映射。如了虚拟内存到物理内存之间的映射。如MmMapI

4、oSpaceMmMapIoSpace把物理地址映射为虚拟地把物理地址映射为虚拟地址址¢执行支持执行支持(Ex(Ex前缀前缀))提供堆管理和同步服提供堆管理和同步服务。务。如如ExAllocatePoolWithTagExAllocatePoolWithTag从内存池从内存池中分配内存,中分配内存,ExAcquireFastMutexExAcquireFastMutex获取一获取一个快速互斥对象个快速互斥对象核心模式编程环境核心模式编程环境¢对象管理器对象管理器(Ob(Ob前缀前缀))集中控制集中控制WindowsWind

5、owsNTNT中的各种数据对象。中的各种数据对象。WDMWDM驱动程序仅需驱动程序仅需要对象管理器维护对象的参考计数,以防要对象管理器维护对象的参考计数,以防止对象被意外删除。止对象被意外删除。如如ObReferenceObjectObReferenceObject增加一个指定对象的增加一个指定对象的参考计数参考计数¢安全参考监视器安全参考监视器(Se(Se前缀前缀))使文件系统驱使文件系统驱动程序执行安全检测。动程序执行安全检测。I/OI/O请求到达请求到达WDMWDM驱驱动程序前已经做完了安全检测。动程序前已经做完了

6、安全检测。核心模式编程环境核心模式编程环境¢运行时间库部件(Rtl前缀)包含工具例程,例如串管理例程,内核模式驱动程序可以用这些例程来替代常规的ANSI标准例程。大部分例程可以从其名字上直接看出它的功能。如RtlAnsiStringToUnicodeSize¢Win32子系统存在于用户模式中,所以用户模式中的应用程序可以容易地调用其例程。为了方便,WindowsNT在内核模式中实现了一些有Zw前缀名的函数,这些函数可以使驱动程序调用Win32子系统例程。Windows2000DDK中仅暴露很少一部分这样的函数给驱动程序使

7、用,包括访问文件和注册表的函数。如ZwCreateFileZwQueryValueKey核心模式编程环境核心模式编程环境¢WindowsNTWindowsNT内核内核((KeKe前缀前缀))所有多线程和多处理所有多线程和多处理器的低级同步活动都发生在内核中。这种器的低级同步活动都发生在内核中。这种KeKe函函数使用的最多,如数使用的最多,如KeInitializeDeviceQueueKeInitializeDeviceQueue¢在操作系统的最底层是硬件抽象层在操作系统的最底层是硬件抽象层(HAL(HAL,,HalHa

8、l前前缀缀))。操作系统把所有关于计算机硬件如何连接。操作系统把所有关于计算机硬件如何连接的信息都存放在的信息都存放在HALHAL中。中。HALHAL了解如何在特定平了解如何在特定平台上实现中断操作,如何实现自旋锁,如何寻台上实现中断操作,如何实现自旋锁,如何寻址址I/OI/O或内存映射设备,等等。或内存映射设备,等

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

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

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