词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。