다음을 통해 공유


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

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

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

요구 사항

요구
지원되는 최소 클라이언트 Windows 10
헤더 ntifs.h

참고 항목

ZwQueryVirtualMemory