struttura MEMORY_BASIC_INFORMATION (winnt.h)

Contiene informazioni su un intervallo di pagine nello spazio indirizzi virtuale di un processo. Le funzioni VirtualQuery e VirtualQueryEx usano questa struttura.

Sintassi

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;

Members

BaseAddress

Puntatore all'indirizzo di base dell'area delle pagine.

AllocationBase

Puntatore all'indirizzo di base di un intervallo di pagine allocate dalla funzione VirtualAlloc . La pagina a cui punta il membro BaseAddress è contenuta all'interno di questo intervallo di allocazione.

AllocationProtect

Opzione di protezione della memoria al momento dell'allocazione iniziale dell'area. Questo membro può essere una delle costanti di protezione della memoria o 0 se il chiamante non ha accesso.

PartitionId

RegionSize

Dimensione dell'area a partire dall'indirizzo di base in cui tutte le pagine hanno attributi identici, in byte.

State

Stato delle pagine nell'area. Questo membro può essere uno dei valori seguenti.

State Significato
MEM_COMMIT
0x1000
Indica le pagine di cui è stato eseguito il commit per cui è stata allocata l'archiviazione fisica, in memoria o nel file di paging su disco.
MEM_FREE
0x10000
Indica le pagine gratuite non accessibili al processo chiamante e disponibili per l'allocazione. Per le pagine gratuite, le informazioni nei membri AllocationBase, AllocationProtect, Protect e Type non sono definite.
MEM_RESERVE
0x2000
Indica le pagine riservate in cui viene riservato un intervallo dello spazio indirizzi virtuale del processo senza allocare spazio di archiviazione fisico. Per le pagine riservate, le informazioni nel membro Proteggi non sono definite.

Protect

Protezione di accesso delle pagine nell'area. Questo membro è uno dei valori elencati per il membro AllocationProtect .

Type

Tipo di pagine nell'area. Vengono definiti i tipi seguenti.

Type Significato
MEM_IMAGE
0x1000000
Indica che le pagine di memoria all'interno dell'area vengono mappate nella visualizzazione di una sezione dell'immagine.
MEM_MAPPED
0x40000
Indica che le pagine di memoria all'interno dell'area vengono mappate nella visualizzazione di una sezione.
MEM_PRIVATE
0x20000
Indica che le pagine di memoria all'interno dell'area sono private, ovvero non condivise da altri processi.

Commenti

Per consentire a un debugger di eseguire il debug di una destinazione in esecuzione in un'architettura diversa (a 32 bit rispetto a 64 bit), usare una delle forme esplicite di questa struttura.

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;

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winnt.h (include Windows.h)

Vedi anche

Virtualalloc

VirtualQuery

VirtualQueryEx