MEMORYSTATUS
1. Syntax
typedef struct _MEMORYSTATUS {
DWORD dwMemoryLoad;
DWORD dwTotalPhys;
DWORD dwAvailPhys;
DWORD dwTotalPageFile;
DWORD dwAvailPageFile;
DWORD dwTotalVirtual;
DWORD dwAvailVirtual;
2. Remarks
dwLength : 메모리 구조체 크기
dwMemoryLoad : 사용중인 물리적 메모리 %
dwTotalPhys : 실제 물리적 메모리양(Byte)
dwAvailPhys : 현재 사용 가능한 물리적 메모리양(Byte)
dwTotalPageFile : commit된 메모리 limit의 현재 크기
dwAvailPageFile : 현재 프로세스가 commit할 수 있는 최대 메모리양
dwTotalVirtual : 호출한 프로세스의 가상 주소 공간의 사용자 모드 부분의 크기(Byte)
3. Requirements
OS Versions : Windows CE 1.0 and later
Header : Winbase.h
4. Code Example
* CE 에서 메모리 크기/ 사용량 얻어 오기
MEMORYSTATUS state;
state.dwLength=sizeof(&state);
GlobalMemoryStatus(&state);
CString str;
str.Format(_T("실제 메모리 %d byte,\n사용가능한 메모리 %d\n,메모리 사용률 %d"),state.dwTotalPhys,state.dwAvailPhys,state.dwMemoryLoad);
AfxMessageBox(str);
*CE에서 폴더 전체 크기/ 남은 공간 얻어 오기
ULARGE_INTEGER m_FreeBytesAvailable; //
ULARGE_INTEGER m_TotalNumberOfBytes; //
ULARGE_INTEGER m_TotalNumberOfFreeBytes; //
m_FreeBytesAvailable.QuadPart = 0L;
m_TotalNumberOfBytes.QuadPart = 0L;
m_TotalNumberOfFreeBytes.QuadPart = 0L;
int mtotal, mfree;
GetDiskFreeSpaceEx(
L"패스", // 여기에 경로를 넣어 주시면 됩니다.
&m_uliFreeBytesAvailable,
&m_uliTotalNumberOfBytes,
&m_uliTotalNumberOfFreeBytes);
mtotal=(int)(m_uliTotalNumberOfBytes.QuadPart>>20); // MB 단위로 변경
mfree=(int)(m_uliTotalNumberOfFreeBytes.QuadPart>>20);
str.Format(_T("실제 용량 %d MByte\n남은 용량 %d MByte"),mtotal,mfree);
AfxMessageBox(str);