Share via


MEMORY_BASIC_INFORMATION-Struktur (winnt.h)

Enthält Informationen zu einem Seitenbereich im virtuellen Adressraum eines Prozesses. Die Funktionen VirtualQuery und VirtualQueryEx verwenden diese Struktur.

Syntax

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;

Member

BaseAddress

Ein Zeiger auf die Basisadresse des Seitenbereichs.

AllocationBase

Ein Zeiger auf die Basisadresse eines Seitenbereichs, der von der VirtualAlloc-Funktion zugeordnet wird. Die Seite, auf die das BaseAddress-Element verweist, befindet sich innerhalb dieses Zuordnungsbereichs.

AllocationProtect

Die Speicherschutzoption bei der anfänglichen Zuordnung der Region. Dieser Member kann eine der Speicherschutzkonstanten oder 0 sein, wenn der Aufrufer keinen Zugriff hat.

PartitionId

RegionSize

Die Größe des Bereichs, der bei der Basisadresse beginnt, in der alle Seiten identische Attribute in Bytes aufweisen.

State

Der Zustand der Seiten in der Region. Dieser Member kann einer der folgenden Werte sein.

State Bedeutung
MEM_COMMIT
0x1000
Gibt committete Seiten an, denen physischer Speicher entweder im Arbeitsspeicher oder in der Auslagerungsdatei auf dem Datenträger zugewiesen wurde.
MEM_FREE
0x10000
Gibt freie Seiten an, auf die der aufrufende Prozess nicht zugreifen kann und die zugeordnet werden können. Für kostenlose Seiten sind die Informationen in den Membern AllocationBase, AllocationProtect, Protect und Type nicht definiert.
MEM_RESERVE
0x2000
Gibt reservierte Seiten an, bei denen ein Bereich des virtuellen Adressraums des Prozesses reserviert ist, ohne dass physischer Speicher zugeordnet wird. Für reservierte Seiten sind die Informationen im Schützen-Element nicht definiert.

Protect

Der Zugriffsschutz der Seiten in der Region. Dieser Member ist einer der Werte, die für das AllocationProtect-Element aufgeführt sind.

Type

Der Seitentyp in der Region. Die folgenden Typen sind definiert.

Typ Bedeutung
MEM_IMAGE
0x1000000
Gibt an, dass die Speicherseiten innerhalb des Bereichs der Ansicht eines Bildabschnitts zugeordnet sind.
MEM_MAPPED
0x40000
Gibt an, dass die Speicherseiten innerhalb des Bereichs der Ansicht eines Abschnitts zugeordnet sind.
MEM_PRIVATE
0x20000
Gibt an, dass die Speicherseiten innerhalb der Region privat sind (d. a. nicht von anderen Prozessen gemeinsam genutzt).

Hinweise

Um einem Debugger das Debuggen eines Ziels zu ermöglichen, das in einer anderen Architektur (32-Bit im Vergleich zu 64 Bit) ausgeführt wird, verwenden Sie eine der expliziten Formen dieser Struktur.

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;

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winnt.h (windows.h einschließen)

Weitere Informationen

VirtualAlloc

Virtualquery

VirtualQueryEx