如何获取内存当前的使用情况

怎么获取内存当前的使用情况?
THANKS

------解决方案--------------------
ReadProcessMemory
------解决方案--------------------
zwQuerySystemInfomation
GlobalMemoryStatus


------解决方案--------------------
MEMORYSTATUS mem;//定义一个内存状态变量

DWORD MemTotal,MemFree,VMemTotal,VMemFree;//存储内存状态信息

GlobalMemoryStatus(&mem); //存储内存状态信息
MemTotal=mem.dwTotalPhys;//得到总内存大小(单位b)
MemFree=mem.dwAvailPhys;//得到剩余内存大小(单位b)
VMemTotal=mem.dwTotalVirtual;//得到总虚拟内存大小(单位b)
VMemFree=mem.dwAvailVirtual;//得到剩余虚拟内存内存大小(单位b)


------解决方案--------------------
CString StrTotalMemory;
CString StrUsedMemory;
CString StrFreeMemory;
CString StrInfo;
MEMORYSTATUS MemStat;
MemStat.dwLength=sizeof(MEMORYSTATUS);
::GlobalMemoryStatus(&MemStat);
StrTotalMemory.Format( "系统总内存:%ld字节,大约等于:%ld M Byte\n ",
MemStat.dwTotalPhys,MemStat.dwTotalPhys/1024/1024);
StrFreeMemory.Format( "系统可用内存:%ld字节,大约等于:%ld M Byte\n ",
MemStat.dwAvailPhys,MemStat.dwAvailPhys/1024/1024);
StrUsedMemory.Format( "系统已用内存:%ld字节,大约等于:%ld M Byte\n ",
MemStat.dwTotalPhys-MemStat.dwAvailPhys,
MemStat.dwTotalPhys/1024/1024-MemStat.dwAvailPhys/1024/1024);
StrInfo+=StrTotalMemory+StrUsedMemory+StrFreeMemory;
AfxMessageBox(StrInfo);