请输入您要查询的百科知识:

 

词条 NtAllocateVirtualMemory
释义

函数功能

该函数在指定进程的虚拟空间中申请一块内存,该块内存将以64kb大小对齐。

函数原型

NTSYSAPI NTSTATUS NTAPI NtAllocateVirtualMemory(

IN HANDLE ProcessHandle,

IN OUT PVOID *BaseAddress,

IN ULONG ZeroBits,

IN OUT PULONG RegionSize,

IN ULONG AllocationType,

IN ULONG Protect

);

参数说明

ProcessHandle

目标进程句柄。

该句柄应具有PROCESS_VM_OPERATION访问权限。

BaseAddre

期望内存基址指针。

当该值非零时,系统将计算此值的页对齐地址,尝试按照此地址申请内存块。

当该值等于零时,系统将寻找第一个未使用内存块。

当函数调用成功时,此参数亦将接收实际基址。

ZeroBit

基址高位零位数量。

当该值为零时,此参数将被忽略。

当该值大于零小于32时,将被认为是基址的高位零位数量,此时,32-63位默认为零,以兼容64位操作系统。

当该值大于32时,将被认为是掩盖位MASK,系统将计算此值高位零位数量,以充当参数。

RegionSize

期望大小。

系统将计算实际基址与该值的页对齐边界,以获得实际分配大小。

当函数调用成功时,此参数亦将接收实际分配大小。

AllocationType

分配类型 类型说明

MEM_COMMIT 为特定的页面区域分配内存中或磁盘的页面文件中的物理存储

MEM_PHYSICAL 分配物理内存(仅用于地址窗口扩展内存)

MEM_RESERVE 保留进程的虚拟地址空间,而不分配任何物理存储。

MEM_RESET 指明在内存中由参数BaseAddress和RegionSize指定的数据无效

MEM_TOP_DOWN 在尽可能高的地址上分配内存(Windows 98忽略此标志)

MEM_WRITE_WATCH 必须与MEM_RESERVE一起指定,使系统跟踪那些被写入分配区域的页面(仅针对Windows 98)

Protect

保护属性 描述

PAGE_NOACCESS 试图读取页面、写入页面或执行页面中的代码将引发访问违规

PAGE_READONLY 试图写入页面或执行页面中的代码将引发访问违规

PAGE_READWRITE 试图执行页面中的代码将引发访问违规

PAGE_EXECUTE 试图读取页面或写入页面将引发访问违规

PAGE_EXECUTE_READ 试图写入页面将引发访问违规

PAGE_EXECUTE_READWRITE 对页面执行任何操作都不会引发访问违规

PAGE_WRITECOPY 试图执行页面中的代码将引发访问违规。试图写入页面将使系统为进程单独创建一份该页面的私有副本(以页交换文件为后备存储器)

PAGE_EXECUTE_WRITECOPY 对页面执行任何操作都不会引发访问违规。试图写入页面将使系统为进程单独创建一份该页面的私有副本(以页交换文件为后备存储器)

返回值

各种NTSTATUS码。

备注

详见wrk\\base\tos\\mm\\allocvm.c

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/15 15:46:04