как EPROCESS DirBase сгенерировал, возможно, корень дерева VAD?

я сбрасываю некоторые данные процесса. Я получил значение DirBase как 00030000. Как окна генерируют это значение? Любая структура данных AVL Tree в начале ядра дает эти данные? Я хочу узнать, как процесс создается внутри ядра. Какие глобальные переменные присваивают значения DirBase , ObjectTable и т. д.

Вот пример Windbg: !process fb667a00 7 PROCESS fb667a00 Cid: 0002 Peb: 00000000 ParentCid: 0000 DirBase: 00030000 ObjectTable: e1000f88 TableSize: 112.

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 ?

person Kadir BASOL    schedule 11.09.2016    source источник


Ответы (1)


DirBase — это физический адрес каталога страниц. У каждого процесса есть своя директория страниц, она размещена в структуре KPROCESS::DirectoryTableBase. Когда ОС активирует процесс, значение из KPROCESS::DirectoryTableBase загружается в регистр CR3.

Каталог страниц имеет структуру, описанную в Руководстве разработчика Intel http://wiki.osdev.org/Paging.

person ussrhero    schedule 11.09.2016
comment
как создается каталог страниц? это просто счетчик для каждого нового процесса? - person Kadir BASOL; 11.09.2016
comment
Каталог страниц генерируется ОС, это не счетчик. Это набор физических страниц. Начните с прочтения ссылки - person ussrhero; 11.09.2016
comment
Сомневаюсь, что это счетчик. ОС должна найти свободный набор физических страниц, которые могут служить целям (каждая отдельная таблица страниц имеет длину в одну страницу, кроме PDPT, я думаю). Но, как было сказано выше, каталоги страниц и таблицы страниц являются структурами данных, специфичными для процессора, а не для операционной системы, поэтому руководства Intel очень помогают здесь. - person Martin Drab; 13.09.2016