HoShiMin, Товарищ, так ты ссылки, пожалуйста, читай.. --- Сообщение объединено, Nov 12, 2018 --- все примеры вполне имеются == и в мсдн куча годноты, и сорцы с гитов достать Никто не мешает.
UbIvItS, Читать конечно нужно, но это имхо не тот случай где можно человека напрягать ссылками, я говорил уже выше. Я сталкивался с подобной проблемой, поиск инфы ничего не даёт, не штатная ситуация. Более того это кернел, а ни винапи, где всё согласно докам. В этом деле нужно понимать как ядро устроено, а доки - толку от них мало.
вроде, и в Windows Internals http://csit.udc.edu/~byu/UDC3529315/WindowsInternals-4e.pdf чой-то должно быть --- Сообщение объединено, Nov 12, 2018 --- можно, кстати, порыться и в сорцах https://github.com/reactos/reactos --- Сообщение объединено, Nov 12, 2018 --- Ты имел дело с этими вопросами сколько лет назад???
UbIvItS, >Ты имел дело с этими вопросами сколько лет назад??? Если я подзабыл имена функций, это не означает что я не помню механизмы. Да и какая разница, эти вопросы обычно кроме тс тут никто не задаёт. Интернал механизы нужно понимать, это не виньапи, где можно открыть какие то доки и посмотреть прототипы. В кернел иначе - либо ты в теме, либо нет, а доки - хорошо что они есть, но их нужно изучать, годами.
дело в том, что сейчас реально больше инфы и реально мощней тулзы.. раньше софтайс был приделом мЯчт, а сейчас на ОДНОЙ макинке можно ладить ядро чрез вирты + куча сорцов на гитах валяются. сейчас реально рай для разрабов было бы только время/здоровье/желание
Итак, действительно, через MmGetVirtualForPhysical получил валидный виртуальный адрес, по которому лежат валидные записи. Оттранслировал юзермодный адрес - физический адрес совпал с полученным через MmGetPhysicalAddress. Отлично! Но! Когда транслирую ядерный (4Кб из NonPaged-пула), PTE-запись оказывается пустой, все биты нулевые (чтение PTE успешно, без ошибок). Тоже какие-то особенности? P.S.: Под WinDbg завтра посмотрю
0) что это за дрисня ?))) 1) действительно посмотрите завтра в windbg ) не хочу все разжевывать по полочкам. надо чтоб новички тоже думали )
Только сейчас снова дошли руки до драйвера. Посмотрел внутрь MmGetPhysicalAddress и увидел интересную функу: Похоже, она и отвечает за сокрытие PTE для адресов из пула. Что интересно, в виртуалке периодически PTE читается верно (соответственно, и физический адрес ресолвится правильно и совпадает с полученным через MmGetPhysicalAddress). На хосте такого поведения воспроизвести не получилось. Допишу ещё несколько обёрток над ядерными функами и попробую поресолвить ядерные адреса не из пула, отпишусь о результатах. --- Сообщение объединено, Nov 17, 2018 --- Проверил: память, выделенная через MmAllocateNonCachedMemory, ресолвится без проблем.