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 中定義的下列其中一個常數。

意義
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