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 |