MEMORY_BASIC_INFORMATION 구조체(winnt.h)

프로세스의 가상 주소 공간에 있는 페이지 범위에 대한 정보를 포함합니다. VirtualQueryVirtualQueryEx 함수는 이 구조를 사용합니다.

구문

typedef struct _MEMORY_BASIC_INFORMATION {
  PVOID  BaseAddress;
  PVOID  AllocationBase;
  DWORD  AllocationProtect;
  WORD   PartitionId;
  SIZE_T RegionSize;
  DWORD  State;
  DWORD  Protect;
  DWORD  Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;

멤버

BaseAddress

페이지 영역의 기본 주소에 대한 포인터입니다.

AllocationBase

VirtualAlloc 함수에 의해 할당된 페이지 범위의 기본 주소에 대한 포인터입니다. BaseAddress 멤버가 가리키는 페이지는 이 할당 범위 내에 포함됩니다.

AllocationProtect

지역이 처음 할당되었을 때의 메모리 보호 옵션입니다. 이 멤버는 메모리 보호 상수 중 하나이거나 호출자에게 액세스 권한이 없는 경우 0일 수 있습니다.

PartitionId

RegionSize

모든 페이지에 동일한 특성(바이트)이 있는 기본 주소에서 시작하는 영역의 크기입니다.

State

지역의 페이지 상태입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

시스템 상태 의미
MEM_COMMIT
0x1000
메모리 또는 디스크의 페이징 파일에서 실제 스토리지가 할당된 커밋된 페이지를 나타냅니다.
MEM_FREE
0x10000
호출 프로세스에 액세스할 수 없고 할당할 수 있는 사용 가능한 페이지를 나타냅니다. 무료 페이지의 경우 AllocationBase, AllocationProtect, ProtectType 멤버의 정보는 정의되지 않습니다.
MEM_RESERVE
0x2000
실제 스토리지가 할당되지 않고 프로세스의 가상 주소 공간 범위가 예약된 예약된 페이지를 나타냅니다. 예약된 페이지의 경우 보호 멤버의 정보가 정의되지 않습니다.

Protect

지역에 있는 페이지의 액세스 보호입니다. 이 멤버는 AllocationProtect 멤버에 대해 나열된 값 중 하나입니다.

Type

지역의 페이지 유형입니다. 다음 형식이 정의됩니다.

Type 의미
MEM_IMAGE
0x1000000
영역 내의 메모리 페이지가 이미지 섹션의 보기에 매핑됨을 나타냅니다.
MEM_MAPPED
0x40000
영역 내의 메모리 페이지가 섹션 보기에 매핑됨을 나타냅니다.
MEM_PRIVATE
0x20000
지역 내의 메모리 페이지가 프라이빗(즉, 다른 프로세스에서 공유되지 않음)임을 나타냅니다.

설명

디버거가 다른 아키텍처(32비트 및 64비트)에서 실행되는 대상을 디버그할 수 있도록 하려면 이 구조체의 명시적 형식 중 하나를 사용합니다.

typedef struct _MEMORY_BASIC_INFORMATION32 {
    DWORD BaseAddress;
    DWORD AllocationBase;
    DWORD AllocationProtect;
    DWORD RegionSize;
    DWORD State;
    DWORD Protect;
    DWORD Type;
} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32;

typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 {
    ULONGLONG BaseAddress;
    ULONGLONG AllocationBase;
    DWORD     AllocationProtect;
    DWORD     __alignment1;
    ULONGLONG RegionSize;
    DWORD     State;
    DWORD     Protect;
    DWORD     Type;
    DWORD     __alignment2;
} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64;

요구 사항

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

추가 정보

VirtualAlloc

Virtualquery

VirtualQueryEx