永发信息网

VirtualProtect 返回 errorcode 998 怎么办

答案:2  悬赏:20  手机版
解决时间 2021-02-26 02:15
int main(void)
{
SIZE_T sizeVirtual = 4000; //大小
LPVOID lpRound = (LPVOID)0x100000FF; //地址

//分配内存,直接分配为已提交的内存
LPVOID lpAddress = VirtualAlloc(lpRound, sizeVirtual, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (lpAddress == NULL)
{
printf("VirualAlloc error: %d\n", GetLastError());
return 1;
}
/////////////////////////////////////////////////////////////////////////////////
//设置为READ-ONLY属性
if (!VirtualProtect(lpAddress, 0, PAGE_READONLY, NULL))
{
printf("VirtualProtect error: %d\n", GetLastError());
}
////////////////////////////////////////////////////////////////////////////////

//DECOMMIT 释放,页面将变为保留状态
printf("Free:DECOMMIT\n");
if (!VirtualFree(lpRound, sizeVirtual, MEM_DECOMMIT))
{
printf("VirtualFree error: %d", GetLastError());
return 1;
}

/////////////////////////////////////////////////////////////////////////////////
//设置为READ-ONLY属性
if (!

(lpAddress, 0, PAGE_READONLY, NULL))
{
printf("VirtualProtect error: %d\n", GetLastError());
}
////////////////////////////////////////////////////////////////////////////////

//释放内存
printf("Free:RELEASE\n");
if (!VirtualFree(lpAddress, 0, MEM_RELEASE))
{
printf("VirtualFree error: %d", GetLastError());
return 1;
}
return 0;
}
最佳答案
VirtualProtect第2个参数和第4个参数都设置一下!
如果第二个参数为零,VirtualProtect返回87(参数错误)
如果第四个参数为零,VirtualProtect返回998(内存位置访问无效)
(我也不知道为什么这个API不能省略输出参数,但只有这么用了……)

MSDN原话:
lpflOldProtect [out]
A pointer to a variable that receives the previous access protection value of the first page in the specified region of pages. If this parameter is NULL or does not point to a valid variable, the function fails.
就是说第四个参数传NULL或一个指向不合法地址的指针,函数失败。
全部回答
梵蒂冈地方和共和党呵呵呵
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在异地打工的工人工资,可以在本地法院起诉吗
1泰铢等于多少美元?
战国时期,齐国灭宋国为什么引起五国震怒而伐
老台门精作鲜包庆华美食城店地址有知道的么?
单选题I stayed at a hotel&
90后的女生喜欢身体结实的男生吗
丰田汗兰达油泵继电器安装的位置
亲子宝贝专业儿童摄影怎么去啊,有知道地址的
google pixel xl 怎么连接vr
下列哪一现象不是在男女孩的青春期才出现的?
欣欣副食店(解放大道)地址在哪,我要去那里办
奔驰s320l可以播放dvd吗
凉拌小笋怎么做好吃法
Bloodthirsty是什么意思
离变压器太远电压太低怎么办
推荐资讯
菲利克斯国际英语学校地址在哪,我要去那里办
笔记本内存是1G三星 DDR3 1333MHz 又加了个条
黑眼珠多的女人命好吗?
户口迁入武进可以转学到武进读书吗?
公司筹建期间购买的电缆的费用怎么处理?算不
用PHOtoshop改名片里面的字
羞什么伍的成语
【猴子最讨厌什么线】猴子为什么最讨厌平行线
高铁上补票怎么收费?
华锐视光地址有知道的么?有点事想过去
雀氏纸尿裤好吗
为什么用闭沉鱼落雁,闭叶羞花来形容女子的美
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?