VirtualProtect改变指定虚拟内存分页的保护属性,函数原型如下:

BOOL VirtualProtect(

LPVOID lpAddress,

SIZE_T  dwSize,

DWORD flNewProtect,

PDWORD lpflOldProtect);

参数:
lpAddress: 输入参数,虚拟内存基地址。

dwSize: 输入参数,内存大小。

flNewProtect: 输入参数,需要设置的新的属性,具体为PAGE_READONLY、PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_GUARD、PAGE_NOACCESS和PAGE_NOCACHE。

lpflOldProtect: 输出参数,指向保存原保护属性值的DWORD变量,可以为NULL。

返回值:
返回BOOL值,表示是否成功,可以使用GetLastError函数获取错误代码。

VirtualLock(

LPVOID lpAddress,

SIZE_T dwSize);

VirtualUnlock(

LPVOID lpAddress,

SIZE_T dwSize);

将页面锁定在物理内存中使用VirtualLock函数。这样页面将不会被交换到硬盘上,提高了访问的效率,如果要解除它,可以使用VirtualUnLock。

转载于:https://www.cnblogs.com/snake-hand/archive/2011/12/26/2454420.html

VirtualProtect VirtualLock VirtualUnlock相关推荐

  1. c语言作业模拟虚拟内存,如何用c语言实现虚拟内存

    满意答案 irpwp 2013.12.26 采纳率:50%    等级:11 已帮助:7154人 关注一下,期待高手 可以使用Windows 的FileMapping功能 把文件映射到内存进行管理. ...

  2. windows内存管理(2)

    因为工作集的页驻留在物理内存中,因此对这些页的访问不涉及磁盘I/O,相对而言非常快:反之,如果执行的代码或者访问的数据不在工作集中,则会引发额外的磁盘I/O,从而降低程序的运行效率.一个极端的情况就是 ...

  3. 软件调试之堆和堆检查

    当用户启动一个程序时,系统会将程序文件从外部存储器(硬盘等)加载到内存中.当程序工作时,需要使用内存空间来放置代码和数据.在使用一段内存之前,程序需要以某种方式(API或库函数)发出申请,接受到申请的 ...

  4. VirtualProtect 3方法 -seh ret-ASLR-dep-Adrenalin Player 2.2.5.3

    环境  :  WIN7     寻找 无ASLR+DEP 的DLL 去溢出 !pvefindaddr rop 慢慢 搜  也可以 先搜索出 !pvefindaddr noaslr 才对指定 然后查找合 ...

  5. Windows内存管理 - 隐藏在new和malloc背后的heap

    先来说,heap是什么,heap就是堆,在不知道具体细节的时候,我们只知道,通过new和malloc,我们可以动态获得一个内存区域,用来存放自己的对象和变量,而这些内存区域都是在heap上的.heap ...

  6. MFC 教程【10_内存分配方式和调试机制 】

    内存分配方式和调试机制 M内存分配 内存分配函数 MFCWin32或者C语言的内存分配API,有四种内存分配API可供使用. Win32的堆分配函数 每一个进程都可以使用堆分配函数创建一个私有的堆── ...

  7. KERNEL32.DLL中可供调用的API函数列表

      KERNEL32.DLL中可供调用的API函数列表,如下: ActivateActCtx AddAtomA AddAtomW AddConsoleAliasA AddConsoleAliasW A ...

  8. 【操作系统】实验六 系统内存使用统计

    实验六 一.实验目的 (1)了解Windows内存管理机制,理解页式存储管理技术. (2)熟悉Windows内存管理基本数据结构. (3)掌握Windows内存管理基本API的使用. 二.实验准备 相 ...

  9. WindowsAPI函数大全

    Api函数名 函数说明 WIN16可用 WIN95可用 WINNT可用 AbortDoc 终止一项打印作业 是 是 是 AbortPath 终止或取消DC中的一切路径 否 是 是 AbortPrint ...

最新文章

  1. php聊天室技术,PHP聊天室技术
  2. 幅度和幅值有区别吗_16G内存够用吗?8G/16G/32G内存横向对比
  3. cesium 取消光晕
  4. NIO的基本概念和缓冲区
  5. TCPIP详解 IP路由选择
  6. mac修改锁定文件的解决方法
  7. php融云开源sdk使用im,开源项目索引
  8. java文件乱码_java文件读取出现乱码解决方法
  9. cs231n课程资料Python Numpy Tutorial的Python3版本
  10. 排查内存orJVM内存飙高
  11. MES管理系统中,生产调度业务流程是怎么样的
  12. 高等数学(第七版)同济大学 习题3-7 个人解答
  13. 自考2019计算机组成原理答案,“远洋航空杯”2019年华北五省(市、自治区) 及港澳台大学生计算机应用大赛举行...
  14. TCGA 临床数据 表型 phenotype 各列的含义
  15. 电脑桌面怎么设置html背景图,css中如何设置背景图片?
  16. Windows平台上一些开发软件的卸载与安装@大蟒蛇马戏团
  17. 基于Android的校园导航电子地图软件
  18. linux运行程序 -sh: ./xxxxx: not found 解决办法
  19. chatGPT 生成随机漫步代码
  20. 什么是病毒?病毒有几种表现形式?中毒以后一般怎么处理!

热门文章

  1. C++ 模板:template
  2. python【Matlibplot绘图库】Animation动画(真の能看懂~!)
  3. python【蓝桥杯vip练习题库】BASIC-25 回形取数
  4. Android移动开发之【Android实战项目】通过Java代码设置TextView
  5. python【Matlibplot绘图库】-二维图形绘制
  6. python创造者_python 设计模式-建造者模式
  7. 企业网络推广之中如何对网页设计提出新的色彩搭配原理?
  8. 网络营销专员浅析现阶段下的几种网络营销推广方式
  9. 网站百度索引量受哪些因素影响呢?
  10. docker 离线安装 mysql_docker 离线安装