MEMORY_BASIC_INFORMATION 구조체(ntifs.h)

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

구문

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

멤버

BaseAddress

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

AllocationBase

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

AllocationProtect

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

의미
PAGE_NOACCESS 0x01 페이지 영역에 대한 액세스는 허용되지 않습니다. 지역 내에서 읽거나 쓰거나 실행하려고 시도하면 액세스 위반이 발생합니다.
PAGE_EXECUTE 0x10 페이지 영역에 대한 액세스 실행이 허용됩니다. 지역 내에서 읽거나 쓰려고 시도하면 액세스 위반이 발생합니다.
PAGE_READONLY 0x02 페이지 영역에 대한 읽기 전용 및 실행 액세스가 허용됩니다. 지역 내에서 쓰기를 시도하면 액세스 위반이 발생합니다.
PAGE_READWRITE 0x04 페이지 영역에 대한 읽기, 쓰기 및 실행 액세스가 허용됩니다. 기본 섹션에 대한 쓰기 액세스가 허용되는 경우 페이지의 단일 복사본이 공유됩니다. 그렇지 않으면 페이지가 읽기 전용/복사-쓰기 공유됩니다.
PAGE_GUARD 0x100 페이지 영역에 대한 읽기, 쓰기 및 실행 액세스가 허용됩니다. 그러나 지역에 액세스하면 주체 프로세스에서 "가드 영역 입력" 조건이 발생합니다.
PAGE_NOCACHE 0x200 커밋된 페이지를 데이터 캐시에 배치하지 않도록 설정합니다.
PAGE_WRITECOMBINE 0x400 커밋된 페이지를 데이터 캐시에 배치하지 않도록 설정하고 쓰기도 결합합니다.

PartitionId

시스템에서 사용하도록 예약되었습니다.

RegionSize

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

State

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

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

Protect

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

Type

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

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
머리글 ntifs.h

추가 정보

ZwQueryVirtualMemory