VirtualQueryEx

【勇芳软件工作室】汉化HomePreviousNext

VirtualQueryEx功能提供有关指定进程的虚拟地址空间内的一系列页面的信息。

DWORD VirtualQueryEx(

HANDLE 【hProcess】,//处理进程
LPCVOID 【lpAddress】,//地址的地区
PMEMORY_BASIC_INFORMATION 【lpBuffer】,//信息缓冲区的地址
DWORD 【dwLength】//缓冲区大小
); 

参数

【hProcess】

标识查询其内存信息的进程。句柄必须具有PROCESS_QUERY_INFORMATION权限。

【lpAddress】

指向要查询的页面的基地址。该值向下舍入到下一页边界。要确定主机上的页面大小,请使用GetSystemInfo功能。

【lpBuffer】

指向MEMORY_BASIC_INFORMATION结构,其中返回有关指定页面范围的信息。

【dwLength】

指定由【lpBuffer】参数指向的缓冲区的大小(以字节为单位)。

返回值

返回值是信息缓冲区中返回的实际字节数。

备注

VirtualQueryEx提供有关共享以下属性的指定地址开始的连续页面区域的信息:

*所有页面标志的状态,使用同样的,Mem_kmit,Mem_rizrw,Mem_fri,Mem_praivet,Mem_mapd和Mem_imej。hi-Latn

*如果初始页面不是空闲的,该区域中的所有页面都是通过调用VirtualAlloc函数保留的页面的初始分配的一部分。

*所有页面的访问权与PAGE_READONLY,PAGE_READWRITE,PAGE_NOACCESS,PAGE_WRITECOPY,PAGE_EXECUTE,PAGE_EXECUTE_READ,PAGE_EXECUTE_READWRITE,PAGE_EXECUTE_WRITECOPY,PAGE_GUARD或PAGE_NOCACHE标志相同。

VirtualQueryEx函数确定区域中第一个页面的属性,然后扫描后续页面,直到它扫描整个页面范围,或者直到遇到具有不匹配属性集合的页面。该函数返回具有匹配属性的页面的属性和大小(以字节为单位)。例如,如果存在40 MB的可用内存区域,并且在该区域中10 MB的页面上调用VirtualQueryEx,则该函数将获取MEM_FREE的状态,大小为30 MB。

此函数与VirtualQuery功能相同,只是它能够访问指定进程中的内存信息。

也可以看看

GetSystemInfo, MEMORY_BASIC_INFORMATION, VirtualAlloc, VirtualProtectEx, VirtualQuery