Win32API システムのメモリ使用状況を取得する GlobalMemoryStatus
使用するAPI
この関数は、搭載しているメモリが4GB以下のときのみ使用すべき。
MEMORYSTATUS構造体は、winbase.h にて以下のように定義されている
typedef struct _MEMORYSTATUS { DWORD dwLength; // Size of (MEMORYSTATUS). DWORD dwMemoryLoad; // Percent of memory in use. SIZE_T dwTotalPhys; // Bytes of physical memory. SIZE_T dwAvailPhys; // Free physical memory file. SIZE_T dwTotalPageFile; // Bytes of paging file. SIZE_T dwAvailPageFile; // Free bytes of paging file. SIZE_T dwTotalVirtual; // User bytes of address space. SIZE_T dwAvailVirtual; // Free user bytes. } MEMORYSTATUS, *LPMEMORYSTATUS;
GlobalMemoryStatus関数を使用したサンプルプログラム
#include <windows.h> int main() { MEMORYSTATUS ms; GlobalMemoryStatus(&ms); printf("AvailPageFile = %u\n", ms.dwAvailPageFile); printf("AvailPhys = %u\n", ms.dwAvailPhys); printf("AvailVirtual = %u\n", ms.dwAvailVirtual); printf("Length = %u\n", ms.dwLength); printf("MemoryLoad = %u\n", ms.dwMemoryLoad); printf("TotalPageFile = %u\n", ms.dwTotalPageFile); printf("TotalPhys = %u\n", ms.dwTotalPhys); printf("TotalVirtual = %u\n", ms.dwTotalVirtual); return 0; }