次の方法で共有


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 ページの領域への読み取り、書き込み、および実行アクセスが許可されます。 基になるセクションへの書き込みアクセスが許可されている場合、ページの 1 つのコピーが共有されます。 それ以外の場合、ページは読み取り専用/書き込み時にコピーされます。
PAGE_GUARD 0x100 ページの領域への読み取り、書き込み、実行アクセスが許可されます。ただし、リージョンにアクセスすると、サブジェクト プロセスで "ガード リージョンが入力されました" という条件が発生します。
PAGE_NOCACHE 0x200 コミットされたページのデータ キャッシュへの配置を無効にします。
PAGE_WRITECOMBINE 0x400 コミットされたページのデータ キャッシュへの配置を無効にし、書き込みも組み合わせます。

PartitionId

システムで使用するために予約されています。

RegionSize

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

State

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

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

Protect

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

Type

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

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

要件

要件
サポートされている最小のクライアント Windows 10
Header ntifs.h

こちらもご覧ください

ZwQueryVirtualMemory