struktur MEMORY_BASIC_INFORMATION (winnt.h)

Berisi informasi tentang rentang halaman di ruang alamat virtual proses. Fungsi VirtualQuery dan VirtualQueryEx menggunakan struktur ini.

Sintaks

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;

Anggota

BaseAddress

Penunjuk ke alamat dasar wilayah halaman.

AllocationBase

Penunjuk ke alamat dasar rentang halaman yang dialokasikan oleh fungsi VirtualAlloc . Halaman yang ditujukkan oleh anggota BaseAddress terkandung dalam rentang alokasi ini.

AllocationProtect

Opsi perlindungan memori ketika wilayah awalnya dialokasikan. Anggota ini bisa menjadi salah satu konstanta perlindungan memori atau 0 jika pemanggil tidak memiliki akses.

PartitionId

RegionSize

Ukuran wilayah yang dimulai pada alamat dasar di mana semua halaman memiliki atribut yang identik, dalam byte.

State

Status halaman di wilayah tersebut. Anggota ini bisa menjadi salah satu nilai berikut.

Provinsi Makna
MEM_COMMIT
0x1000
Menunjukkan halaman berkomitmen yang penyimpanan fisiknya telah dialokasikan, baik dalam memori atau dalam file halaman pada disk.
MEM_FREE
0x10000
Menunjukkan halaman gratis yang tidak dapat diakses oleh proses panggilan dan tersedia untuk dialokasikan. Untuk halaman gratis, informasi di anggota AllocationBase, AllocationProtect, Protect, dan Type tidak ditentukan.
MEM_RESERVE
0x2000
Menunjukkan halaman yang dipesan di mana rentang ruang alamat virtual proses dicadangkan tanpa penyimpanan fisik yang dialokasikan. Untuk halaman yang dipesan, informasi di anggota Lindungi tidak ditentukan.

Protect

Perlindungan akses halaman di wilayah tersebut. Anggota ini adalah salah satu nilai yang tercantum untuk anggota AllocationProtect .

Type

Jenis halaman di wilayah tersebut. Jenis berikut didefinisikan.

Jenis Makna
MEM_IMAGE
0x1000000
Menunjukkan bahwa halaman memori dalam wilayah dipetakan ke dalam tampilan bagian gambar.
MEM_MAPPED
0x40000
Menunjukkan bahwa halaman memori dalam wilayah dipetakan ke dalam tampilan bagian.
MEM_PRIVATE
0x20000
Menunjukkan bahwa halaman memori dalam wilayah bersifat privat (yaitu, tidak dibagikan oleh proses lain).

Keterangan

Untuk mengaktifkan debugger untuk men-debug target yang berjalan pada arsitektur yang berbeda (32-bit versus 64-bit), gunakan salah satu bentuk eksplisit struktur ini.

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;

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winnt.h (sertakan Windows.h)

Lihat juga

VirtualAlloc

VirtualQuery

VirtualQueryEx