网站大量收购闲置独家精品文档,联系QQ:2885784924

Windows进程的用户空间.PDF

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows进程的用户空间.PDF

漫谈兼容内核之二十一: Windows 进程的用户空间 毛德操 进程的用户空间是应用软件活动的舞台,所以搞清楚 Windows 进程用户空间的格局和 轮廓对于深入理解 Windows 进程的运行有着重要的意义。而对于兼容内核的开发者,则这 个问题更是非搞清楚不可,因为开发兼容内核的意图就是要让 Windows 应用软件得以在 Linux 系统上运行。其实,在前面的一些漫谈中,随着当时话题的开展也曾讲到过有关这个 问题的一些大概,但是一方面只是散见于各处,不够集中;另一方面也不够系统和完整,实 际上也因而不够详细和确切;因此有必要专门把它作为一个话题加以比较系统、完整的深入 介绍。有道是“耳闻为虚,眼见为实”,对于我们来说,所谓“眼见”就是要见到有关的源 代码。当然,我们所能见到的只是 RreactOS 的源代码,好在各种迹象表明 RreactOS 与 Windows 在这方面也是相当贴近和一致的。 我们先从几个宏定义着手: #define MM_HIGHEST_USER_ADDRESS *MmHighestUserAddress #define MM_USER_PROBE_ADDRESS *MmUserProbeAddress #define MM_LOWEST_USER_ADDRESS (PVOID)0x10000 #define KI_USER_SHARED_DATA 0xffdf0000 #define SharedUserData \ ((KUSER_SHARED_DATA *CONST) KI_USER_SHARED_DATA) 在 ReactOS 的代码中,每当需要引用用户空间的上限、即最高地址时,一般就把 MM_HIGHEST_USER_ADDRESS 用作常数,但实际上这是个宏操作,是在引用指针 MmHighestUserAddress 的内容。与此相似的还有 MM_USER_PROBE_ADDRESS ,实际上 是在引用指针MmUserProbeAddress 的内容。这两个指针的内容是在内核初始化时设置好的: MmInit1(…) { …… MmUserProbeAddress = 0x7fff0000; MmHighestUserAddress = (PVOID)0x7ffeffff; …… } 就是说,应用软件在用户空间可以访问的最高地址(虚拟地址)是 0x7ffeffff,从 0x7fff0000 开始就不能访问了。一般文献中讲 Windows 系统中用户空间与系统空间的分界线是 0而这里之所以是 0x7fff0000 而不是 0是因为在分界下面留了 64KB 的空间不让访问,以此作为隔离区。 应用软件在用户空间可以访问的最低地址是 MM_LOWEST_USER_ADDRESS ,这是个 常数,定义为 0x10000,就是第一个 64KB 边界的地方,而从 0 开始的 64KB 也是不让访问 的。 还有个常数 KI_USER_SHARED_DATA 更是值得一说。这个常数定义为 0xffdf0000,是 一个区间的起点。这个区间按说是在系统空间,却又划出来让用户空间的程序访问,就好像 是用户空间的一小片飞地。这片飞地的目的是用来让用户空间的程序访问内核中的一些数 据,好像是在系统空间的地皮上挖了口井。而且,这个区间是由系统空间和所有用户空间共 享,也就是为所有进程所共享,所以这个常数名为 KI_USER_SHARED_DATA 。那么这个“井” 里有些什么数据呢?上面的宏定义为此定义了一个数据结构 KUSER_SHARED_DATA ,并 定义了一个相应的结构指针 SharedUserData,让它指向这个地址: typedef struct _KUSER_SHARED_DATA { ULONG TickCountLowDeprecated; ULONG TickCountMultiplier; vo

您可能关注的文档

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档