Здравствуйте, kr4nt, Вы писали:
То, что сразу бросается в глаза.
K>pCodeEntryPoint = PEFile_GetEntryPointOffset32(ImageInfo->ImageBase, TRUE);
Судя по названию, возвращается не указатель, а смещение.
K> mdl = MmCreateMdl(NULL, pCodeEntryPoint, 8);
Функция устарела. Лучше использовать IoAllocateMdl.
K> MmBuildMdlForNonPagedPool(mdl);
Вызов этой функции неуместен. Образ находится в страничной памяти
K> mdl->>MdlFlags = mdl->MdlFlags | MDL_MAPPED_TO_SYSTEM_VA;
BAD_BAD_BAD_HACK?
Проверяли, что находится в памяти, до записи в нее?