본문 바로가기
Programming/Tips(C++,C#)

WinAPI 메모리 상태 가져오기 - GlobalMemoryStatusEx

by 곰네Zip 2013. 8. 5.

윈도우 프로그래밍중 PC의 메모리 상태를 가져올 수 있는 함수

 

참고 링크 : http://msdn.microsoft.com/en-us/library/windows/desktop/aa366589(v=vs.85).aspx

 

ProtoType : BOOL WINAPI GlobalMemoryStatusEx( _Inout_  LPMEMORYSTATUSEX lpBuffer);

 

MSDN에 쓰여있듯, 리턴값은 성공시 TRUE, else FALSE.

 

메모리 정보는 MEMORYSTATUSEX 구조체를 선언하여 넘겨주면 됨.

 

MSDN에 예제가 있으나 아래에도 간략히 기술.

 

MEMORYSTATUSEX status;

status.dwLength = sizeof(status);

 

if( ::GlobalMemoryStatus(&status) == FALSE)

{

//Todo 에러처리

return;

}

...

 

MEMORYSTATUSEX구조체는 아래와 같음

 

참고링크 : http://msdn.microsoft.com/en-us/library/windows/desktop/aa366770(v=vs.85).aspx

typedef struct _MEMORYSTATUSEX {
  DWORD     dwLength; //구조체길이
  DWORD     dwMemoryLoad; //메모리 점유율 0~100사이
  DWORDLONG ullTotalPhys; //물리메모리 총량
  DWORDLONG ullAvailPhys; //물리메모리 가용량
  DWORDLONG ullTotalPageFile; 
  DWORDLONG ullAvailPageFile;
  DWORDLONG ullTotalVirtual;
  DWORDLONG ullAvailVirtual;
  DWORDLONG ullAvailExtendedVirtual; //예약값. 현재 0
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
 


 

반응형

댓글