Share via


MEMORY_BASIC_INFORMATION構造体 (winnt.h)

プロセスの仮想アドレス空間内のページの範囲に関する情報が含まれます。 VirtualQuery 関数と VirtualQueryEx 関数では、この構造が使用されます。

構文

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

メンバー

BaseAddress

ページの領域のベース アドレスへのポインター。

AllocationBase

VirtualAlloc 関数によって割り当てられたページ範囲のベース アドレスへのポインター。 BaseAddress メンバーが指すページは、この割り当て範囲内に含まれています。

AllocationProtect

リージョンが最初に割り当てられた場合のメモリ保護オプション。 このメンバーには 、メモリ保護定数 の 1 つ、または呼び出し元にアクセス権がない場合は 0 を指定できます。

PartitionId

RegionSize

すべてのページが同じ属性を持つベース アドレスから始まるリージョンのサイズ (バイト単位)。

State

リージョン内のページの状態。 このメンバーには、次のいずれかの値を指定できます。

状態 意味
MEM_COMMIT
0x1000
物理ストレージが割り当てられているコミット済みページを示します (メモリ内またはディスク上のページング ファイル内)。
MEM_FREE
0x10000
呼び出し元のプロセスからアクセスできない、割り当て可能な空きページを示します。 無料ページの場合、 AllocationBaseAllocationProtectProtectおよび Type メンバーの情報は未定義です。
MEM_RESERVE
0x2000
プロセスの仮想アドレス空間の範囲が、物理ストレージを割り当てずに予約されている予約済みページを示します。 予約ページの場合、 Protect メンバーの情報は未定義です。

Protect

リージョン内のページのアクセス保護。 このメンバーは、 AllocationProtect メンバーに一覧表示されている値の 1 つです。

Type

リージョン内のページの種類。 次の型が定義されています。

Type 説明
MEM_IMAGE
0x1000000
領域内のメモリ ページがイメージ セクションのビューにマップされることを示します。
MEM_MAPPED
0x40000
領域内のメモリ ページがセクションのビューにマップされることを示します。
MEM_PRIVATE
0x20000
領域内のメモリ ページがプライベートであることを示します (つまり、他のプロセスでは共有されません)。

注釈

デバッガーが別のアーキテクチャ (32 ビットと 64 ビット) で実行されているターゲットをデバッグできるようにするには、この構造体の明示的な形式のいずれかを使用します。

typedef struct _MEMORY_BASIC_INFORMATION32 {
    DWORD BaseAddress;
    DWORD AllocationBase;
    DWORD AllocationProtect;
    DWORD RegionSize;
    DWORD State;
    DWORD Protect;
    DWORD Type;
} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32;

typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 {
    ULONGLONG BaseAddress;
    ULONGLONG AllocationBase;
    DWORD     AllocationProtect;
    DWORD     __alignment1;
    ULONGLONG RegionSize;
    DWORD     State;
    DWORD     Protect;
    DWORD     Type;
    DWORD     __alignment2;
} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64;

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winnt.h (Windows.h を含む)

こちらもご覧ください

VirtualAlloc

VirtualQuery

VirtualQueryEx