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 |