Partager via


MEMORY_BASIC_INFORMATION structure (winnt.h)

Contient des informations sur une plage de pages dans l’espace d’adressage virtuel d’un processus. Les fonctions VirtualQuery et VirtualQueryEx utilisent cette structure.

Syntaxe

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;

Membres

BaseAddress

Pointeur vers l’adresse de base de la région de pages.

AllocationBase

Pointeur vers l’adresse de base d’une plage de pages allouées par la fonction VirtualAlloc . La page pointée par le membre BaseAddress est contenue dans cette plage d’allocation.

AllocationProtect

Option de protection de la mémoire lors de l’allocation initiale de la région. Ce membre peut être l’une des constantes de protection de la mémoire ou 0 si l’appelant n’a pas accès.

PartitionId

RegionSize

Taille de la région commençant à l’adresse de base dans laquelle toutes les pages ont des attributs identiques, en octets.

State

État des pages dans la région. Ce membre peut être l’une des valeurs suivantes.

State Signification
MEM_COMMIT
0x1000
Indique les pages validées pour lesquelles le stockage physique a été alloué, en mémoire ou dans le fichier de pagination sur le disque.
MEM_FREE
0x10000
Indique que les pages gratuites ne sont pas accessibles au processus d’appel et qu’elles peuvent être allouées. Pour les pages gratuites, les informations contenues dans les membres AllocationBase, AllocationProtect, Protect et Type ne sont pas définies.
MEM_RESERVE
0x2000
Indique les pages réservées où une plage de l’espace d’adressage virtuel du processus est réservée sans qu’aucun stockage physique ne soit alloué. Pour les pages réservées, les informations du membre Protect ne sont pas définies.

Protect

Protection de l’accès des pages dans la région. Ce membre est l’une des valeurs répertoriées pour le membre AllocationProtect .

Type

Type de pages dans la région. Les types suivants sont définis.

Type Signification
MEM_IMAGE
0x1000000
Indique que les pages mémoire de la région sont mappées dans la vue d’une section d’image.
MEM_MAPPED
0x40000
Indique que les pages mémoire dans la région sont mappées dans la vue d’une section.
MEM_PRIVATE
0x20000
Indique que les pages mémoire dans la région sont privées (c’est-à-dire, non partagées par d’autres processus).

Remarques

Pour permettre à un débogueur de déboguer une cible qui s’exécute sur une architecture différente (32 bits au lieu de 64 bits), utilisez l’une des formes explicites de cette structure.

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;

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête winnt.h (inclure Windows.h)

Voir aussi

VirtualAlloc

VirtualQuery

VirtualQueryEx