windwos核心编程--5、虚拟内存相关函数及其应用

一、前言

    该系列前几篇文章:
        windows核心编程–1、使用vs2019编写第一个win32项目
        windows核心编程–2、windows的画笔画刷以及一些简单的应用
        windows核心编程–3、有关进程的三个函数
        windows核心编程–4、线程和线程同步


二、相关工具

    IDE:Visual Studio 2019


三、相关函数

    1、VirtualAlloc函数,作用为分配一个虚拟内存,第一个参数为首地址,第二个参数为预分配内存大小,第三个参数表示是预定地址空间还是分配物理存储器,最后一个参数保护模式,若分配成功,则返回类型为LPVOID的首地址。

    2、VirtualFree函数,作用为释放虚拟内存,第一个参数为要释放的地址首地址,第二个参数为释放内存大小,第三个参数一般设置为MEM_DECOMMIT

    3、VirtualQuery函数,作用为查询虚拟内存属性,第一个参数为VirtualAlloc函数的返回值,第二个参数为一个类型为MEMORY_BASIC_INFORMATION的结果体,用来存放结果,第三个参数为结构体的大小。

    4、VirtualProtect函数用来修改该虚拟内存的保护模式,第一个参数为虚拟内存句柄,第二个参数为虚拟内存大小,第三个参数为要修改后的保护模式,第四个参数为用来保存老的保护模式,这里值得注意的是,在win32程序中,该参数必须使用new的方式来初始化,例如PDWORD oldProtect = new DWORD;


四、实验要求

    1、采用虚拟内存函数VirtualAlloc,从地址“0x100000FF”分配一个n字节地址预订和物理调拨(其中n为各自学号),最开始地址页属性设置为只读。
    2、采用VirtualQuery进行查询虚拟内存情况,并展示出来。
    3、采用VirtualProtect函数把该地址页属性进行修改,修改为可读可写,然后将字符串“20170111”(各自学号)赋值到虚拟内存;并然后调用VirtualFree释放虚拟内存。


五、实验步骤

    这个没什么好说的,调用函数即可,结果如下:

1.png

在这里插入图片描述

3.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值