다음을 통해 공유


MEMORYSTATUS 구조체(winbase.h)

실제 메모리와 가상 메모리의 현재 상태에 대한 정보를 포함합니다. GlobalMemoryStatus 함수는 MEMORYSTATUS 구조에 정보를 저장합니다.

구문

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;

멤버

dwLength

MEMORYSTATUS 데이터 구조의 크기(바이트)입니다. GlobalMemoryStatus 함수를 호출하기 전에 이 멤버를 설정할 필요가 없습니다. 함수가 설정합니다.

dwMemoryLoad

사용 중인 실제 메모리의 대략적인 백분율을 지정하는 0에서 100 사이의 숫자입니다(0은 메모리 사용 없음을 나타내고 100은 전체 메모리 사용을 나타냅니다).

dwTotalPhys

실제 실제 메모리 양(바이트)입니다.

dwAvailPhys

현재 사용 가능한 실제 메모리 양(바이트)입니다. 이 크기는 콘텐츠를 디스크에 먼저 쓸 필요 없이 즉시 재사용할 수 있는 실제 메모리의 양입니다. 대기, 무료 및 0 목록 크기의 합계입니다.

dwTotalPageFile

커밋된 메모리 제한의 현재 크기(바이트)입니다. 이는 실제 메모리와 페이지 파일의 크기에 작은 오버헤드를 뺀 값입니다.

dwAvailPageFile

현재 프로세스에서 커밋할 수 있는 최대 메모리 양(바이트)입니다. 이 값은 시스템 차원의 사용 가능한 커밋보다 작아야 합니다. 이 값을 계산하려면 GetPerformanceInfo를 호출하고 CommitLimit에서 CommitTotal 값을 뺍니다.

dwTotalVirtual

호출 프로세스의 가상 주소 공간의 사용자 모드 부분 크기(바이트)입니다. 이 값은 프로세스 유형, 프로세서 유형 및 운영 체제 구성에 따라 달라집니다. 예를 들어 이 값은 x86 프로세서의 대부분의 32비트 프로세스에 대해 약 2GB이고, 4 GT RAM 튜닝이 사용하도록 설정된 시스템에서 실행되는 큰 주소를 인식하는 32비트 프로세스의 경우 약 3GB입니다.

dwAvailVirtual

호출 프로세스의 가상 주소 공간의 사용자 모드 부분에 있는 예약되지 않은 메모리 및 커밋되지 않은 메모리의 양(바이트)입니다.

설명

MEMORYSTATUS 는 호출 시 메모리 상태를 반영합니다. 또한 해당 시간에 페이징 파일의 크기를 반영합니다. 운영 체제는 페이징 파일을 관리자가 설정한 최대 크기까지 확대할 수 있습니다.

메모리가 4GB를 초과하는 컴퓨터에서 MEMORYSTATUS 구조는 잘못된 정보를 반환하여 오버플로를 나타내기 위해 –1 값을 보고할 수 있습니다. 애플리케이션이 이 동작의 위험에 노출되면 GlobalMemoryStatus 함수 대신 GlobalMemoryStatusEx 함수 를 사용합니다.

예제

예제는 GlobalMemoryStatus 함수를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winbase.h(Windows.h 포함)

추가 정보

GlobalMemoryStatus

GlobalMemoryStatusEx

메모리 성능 정보