VirtualQuery

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

VirtualQuery功能提供有关调用进程的虚拟地址空间中的一系列页面的信息。

DWORD VirtualQuery(

LPCVOID 【lpAddress】,//地址的地区
PMEMORY_BASIC_INFORMATION 【lpBuffer】,//信息缓冲区的地址
DWORD 【dwLength】//缓冲区大小
); 

参数

【lpAddress】

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

【lpBuffer】

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

【dwLength】

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

返回值

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

备注

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

*所有页面标志的状态,使用同样的,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标志相同。

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

该函数会报告调用进程内存中的一个页面区域,并且VirtualQueryEx功能将报告指定进程内存中的页面区域。

也可以看看

GetSystemInfo, MEMORY_BASIC_INFORMATION, VirtualQueryEx