- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内核编程环境及其特殊性-Read
第2 章 内核编程环境及其特殊性
2.1 内核编程的环境 18
2.2 数据类型21
2.3 重要的数据结构23
2.4 函数调用28
2.5 Windows 的驱动开发模型32
2.6 WDK 编程中的特殊点 34
寒江独钓——Windows 内核安全编程
初次进行 Windows 内核编程的读者应该仔细阅读这一章,而进行过驱动开发的读
者则可以直接跳过本章。本章首先介绍内核程序的生存运行环境,然后介绍在 Windows
内核编程中,所习惯遵守的“WDK 编码习惯”,主要是其中所用的新定义的数据类型,
以及在内核编程中所常用的一些函数调用等。
阅读此章有助于初次进行内核编程的读者建立内核编程的思维方式,并消除对不认
识的数据类型及陌生函数的迷茫感,便于熟悉后面的内核代码。
2.1 内核编程的环境
对于第一次接触内核编程的读者来说,先了解一下内核模式 (Kernel mode )编程
与在用户模式 (User mode )下编写程序的不同之处是非常必要的。它们也可以称为用
户态和内核态。虽然同样是用C 语言所编写的程序,但是由于执行的方式、执行的环境
都大不相同,因此可能出现的结果也不一样。读者需要有一个熟悉的过程。
2.1.1 隔离的应用程序
对于许多只进行高级语言的用户模式的应用程序编程的读者而言,编写一个“程序”
在大多数情况下等价于编写一个可执行的应用程序。在 Windows 下,这意味着建造一
个 exe 文件。一个exe 文件被双击执行后,在Windows 系统中,产生一个“进程”(Process )。
虽然在高级语言中很多细节被忽略,但是在单个进程内的编程具有以下的特点:
(1)可以自由使用通用寄存器,不用关心这些寄存器被其他进程修改。换句话说,
不同进程(本质上是线程)看似各自拥有一套通用寄存器。
(2 )原则上可以自由使用 0~N 范围内的内存空间。N 的大小取决于操作系统的位
数(32 位或者 64 位)。在Windows 上实际编程有一些限制,但这些细节暂时忽略,不
用关心这些内存空间被其他进程修改。如果读者编写一个程序,对一个变量取地址,然
后把这个地址设法传递给其他进程,那么另一个进程看见的地址中的内容是一样的吗?
答案当然是否定的,每个进程的用户空间内存是隔离的。
(3 )通过操作系统约定的方式与其他进程共享其他资源,比如网络。大多数操作系
统要求进程在使用 TCP 协议时必须打开一个端口,以避免和其他进程冲突。
因为有了这些特点,所以在单个进程内编程变得非常容易。编程者只需要定义和使
用本进程所需要的资源,并编写代码操作这些资源即可,不需要关心其他进程。
虽然 CPU 有一些特性支持进程的隔离,但是更重要的是操作系统应用这些特性给
各个进程提供了资源隔离的种种措施。这使应用程序的编程变得简单了,而且也变得更
18
第 2 章 内核编程环境及其特殊性
安全。因为大部分独立的应用程序,都不希望被其他应用程序影响。这中间的问题值得
读者思考:
既然一个进程的可执行代码,都加载在这个进程的内存空间范围内,那么那些需要
调用操作系统的调用才能实现的功能(比如说读取硬盘。大家应该不记得自己曾经读/
写端口,或者
您可能关注的文档
- APEC经济体科研人员的流动特征及影响因素-中国科学技术协会.DOC
- ACS的诊断及其危险分层-新桥医院.PPT
- C3肾小球病临床表现和病理改变的异质性·综述·.PDF
- Boltzmann方程用于气体分子系统与用于非平衡等离子体之间的差异.PDF
- E2M275旋片泵定期检查油位频率.PPT
- Dustpan水路配置模型Dustpan水路配置Dustpan水路配置.PPT
- dsRNA介导植物基因沉默及其应用-生命科学.PDF
- ET200SP故障安全型电机起动器报1417故障无法复位的解决方法.PDF
- H2O2在黑松-松材线虫早期互作应答中的调控作用-生物通.PDF
- Laplace方程方程的导出及定解条件的提法.PDF
文档评论(0)