-
-
[已解决]VirtualAlloc 申请内存的问题
-
发表于:
2022-3-20 09:57
9355
-
[已解决]VirtualAlloc 申请内存的问题
环境:VS 2022
编译程序:x64
目的:在自身进程内申请大小为: A1F0000 的大小的空白内存.(需指定地址)
1 | Util::Alloc_Address = (DWORD64)VirtualAlloc(NULL, 0xA1F0000 + 1 , MEM_COMMIT, PAGE_READWRITE);
|
是可以成功申请,并使用的.
但是使用
1 | Util::Alloc_Address = (DWORD64)VirtualAlloc((LPVOID) 0x0000000240000000 , 0xA1F0000 + 1 , MEM_COMMIT, PAGE_READWRITE);
|
就申请失败了,GetLastError 结果为 487 .是否不支持这种情况?还是说要启用什么令牌?还是其它的问题?
只是在申请的时候指定了地址而已,很好奇,特来求助.
程序自身的 0x0000000240000000 基本上就是 ?? No Access
解决了...
1 | MEM_COMMIT 变成 MEM_RESERVE | MEM_COMMIT
|
就好了..算是个解决方法把..
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-3-20 10:44
被maxwudi编辑
,原因: 增加了解决方法