首页
社区
课程
招聘
[求助] MDL内存映射求助
发表于: 2012-7-20 13:22 6664

[求助] MDL内存映射求助

2012-7-20 13:22
6664
PMDL NTAPI IoCreateWriteMdlForAddress(PVOID InAddress,PVOID *OutAddress,size_t Size)
{
PMDL pMdl=NULL;
if(Size>0)
{
if((InAddress==NULL)|(Size==0))
return NULL;
// if(!MmIsAddressValid(InAddress))
// return NULL;
if(OutAddress==NULL)
return NULL;
if(!MmIsAddressValid(OutAddress))
return NULL;
}
else
{
return NULL;
}
pMdl=MmCreateMdl(NULL,InAddress,Size);
if(pMdl==NULL)
{
return NULL;
}
MmBuildMdlForNonPagedPool(pMdl);
// My_Mdl->MdlFlags = My_Mdl->MdlFlags | MDL_MAPPED_TO_SYSTEM_VA;
if(!FlagOn(pMdl->MdlFlags,MDL_MAPPED_TO_SYSTEM_VA))
SetFlag(pMdl->MdlFlags,MDL_MAPPED_TO_SYSTEM_VA);
*OutAddress=MmMapLockedPages(pMdl, KernelMode);
return pMdl;
}

上面代码  在XP下没什么问题  但是在WIN732位  将一段RING3不可写的内存映射后  对映射出的OutAddress内存进行修改  仍然不可写 仍然蓝屏  求大牛指点下

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
MmBuildMdlForNonPagedPool ...Win7下对Ring3的内存的操作不能这个函数了哦,亲,要用 MmProbeAndLockPages
另外不能用MmCreateMdl哦,亲,要用IoAllocateMdl哦~
不能暴力修改VAFLAGS和mmMapLockedPages了哦,亲,要用MmMapLockedPagesSpecifyCache
2012-7-20 20:32
0
雪    币: 24
活跃值: (1353)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
额  亲V神
2012-7-21 11:51
0
游客
登录 | 注册 方可回帖
返回
//