-
-
IoAllocateMdl和MmProbeAndLockPages怎么用?
-
发表于:
2017-2-20 21:33
4054
-
IoAllocateMdl和MmProbeAndLockPages怎么用?
内核层读写用户层内存这样写为什么不行?
KeStackAttachProcess(Process, &apc);
PMDL mdl = IoAllocateMdl(PAGE_ALIGN(Address), PAGE_SIZE, FALSE, FALSE, NULL);
if (!mdl)
{
KeUnstackDetachProcess(&apc);
return STATUS_UNSUCCESSFUL;
}
__try
{
MmProbeAndLockPages(mdl, UserMode, IoWriteAccess);//这里必须是用户模式的
}
__except(EXCEPTION_EXECUTE_HANDLER)
{ IoFreeMdl( mdl);
KeUnstackDetachProcess(&apc);
DbgPrint("GetExceptionCode:%d\n",GetExceptionCode());
//每次都会跑到这里来,都不成功,这怎么弄啊
return STATUS_UNSUCCESSFUL;
}
KeUnstackDetachProcess(&apc);
输出信息是:
错误提示:-1073741819
-1073741819, "\"0x%08lx\" 指令引用的 \"0x%08lx\" 内存。该内存不能为 \"%s\"。"
什么情况?
哪位大神指点迷津一下吧。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课