Great Всего лишь ) retmas А зачем ? Какой смысл в этом геморе. Ихмо дальше логических адресов ты не уйдейшь. Физические адреса банков памяти может знать только контроллер на сколько я помню
пример писать сейчас времени нет. я не вижу принципиальной сложности в твоей задаче - проходишь по процессам, для каждого процесса выделяешь физическую память сколько тебе нужо через MmAllocatePagedForMdl далее, как я помню, PDE верхних 2 гигов в винде общие для всех процессов, тебе же придется сделать дубликат соответствующей таблицы страниц (может быть даже не одного, зависит от объема проецируемой памяти) и сделать так, чтобы каталог таблиц страниц ссылался у соответствующего процесса на свой дубликат таблицы. после этого просто в каждой таблцие страниц, которые ты только что "размножил" на все процессы, ты прописываешь нужные PTE.