массив PTE в общем смысле является массивом только в пределах одной таблицы страниц, потому как разные таблицы страниц не обязательно должны быть смежны физически таблицы страниц для отдельной задачи могут выделяться в любом месте физически доступной памяти поэтому с этой точки зрения говорить об адресе некорректно другое дело таблицы страниц для перехода в страничный режим при инициализации ОС, ты это имеешь в виду?
KoMaTo3HuK в CR3 адрес каталога страниц (причем физический), т. е массива PDE каэждый его элемент содержит адрес (тоже физический) очередной таблицы страниц, т. е массива PTE
Теперь проблема. Пытаюсь произвести следующие манипуляции: 1 беру адрес какой-нибудь своей переменной. 2 вынимаю из него PDI - индекс в PDE 3 смотрю в PDE по смещению PDI а там 0 - как так ?
Инициализирую вот так. DWORD *PDE; PHYSICAL_ADDRESS addr; _asm{ push eax mov eax,cr3 mov addr.quadpart,eax pop eax } addr.quadpart = addr.quadpart & 0xFFFFF000 PDE = MmMapIoSpace(addr,PAGE_SIZE,0)