首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EPROCESS DirBase是如何生成"VAD树根“的?

EPROCESS DirBase是如何生成"VAD树根“的?
EN

Stack Overflow用户
提问于 2016-09-12 01:17:11
回答 1查看 594关注 0票数 0

我转储了一些进程数据。我得到的DirBase值是00030000,windows是如何生成这个值的?内核开始时的任何AVL树数据结构都给出了这个数据?我想了解进程是如何在内核内部创建的。什么类型的全局变量分配DirBase、ObjectTable等值。

下面是一些示例windbg:!process fb667a00 7 PROCESS fb667a00 Cid: 0002PEB: 00000000 ParentCid: 0000 DirBase: 00030000 ObjectTable: e1000f88 TableSize: 112。

代码语言:javascript
复制
When a process created by system.
System creates new pagedirectory for process and assigns a number to process page directory.
How can windows assigns that number ? is there an AVL Tree data structure that has free page tables and busy page tables trees.
And system allocates one page directory from that AVL Tree ?
There is no documentation how this mechanism works ?
I want to learn how page directory  gets its data ?
EN

回答 1

Stack Overflow用户

发布于 2016-09-12 01:45:10

DirBase是页面目录的物理地址。每个进程都有自己的页面目录,它放在结构KPROCESS::DirectoryTableBase中。当操作系统激活一个进程时,来自KPROCESS::DirectoryTableBase的值被加载到CR3寄存器。

页面目录具有英特尔开发人员手册http://wiki.osdev.org/Paging中描述的结构

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39438679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档