日期:2014-05-20  浏览次数:21173 次

如何获取虚拟内存的总量,以及某个程序虚拟内存的使用情况,以及当前系统物理内存的总量以及使用情况
RT,
1.   需要取得当前虚拟内存的总量,以及某个application的虚拟内存使用情况,如果这个application的实例是多个,则使用情况是所有实例占用虚拟内存的总和.
2.   获取当前系统的物理内存,以及总的物理内存的使用情况

请高手帮帮忙,谢谢


------解决方案--------------------
可以使用WMI来获得这些系统信息。你在msdn中查WMI的资料。
------解决方案--------------------
call
void GlobalMemoryStatus(
LPMEMORYSTATUS lpBuffer
);
api

typedef struct _MEMORYSTATUS
{ DWORD dwLength;
DWORD dwMemoryLoad;
SIZE_T dwTotalPhys;
SIZE_T dwAvailPhys;
SIZE_T dwTotalPageFile;
SIZE_T dwAvailPageFile;
SIZE_T dwTotalVirtual;
SIZE_T dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;


------解决方案--------------------
上面是取得全局内存的函数取得某一进程用
BOOL GetProcessMemoryInfo(
HANDLE Process,
PPROCESS_MEMORY_COUNTERS ppsmemCounters,
DWORD cb
);

typedef struct _PROCESS_MEMORY_COUNTERS { DWORD cb; DWORD PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS, *PPROCESS_MEMORY_COUNTERS;