estrutura MEMORY_BASIC_INFORMATION (winnt.h)

Contém informações sobre um intervalo de páginas no espaço de endereço virtual de um processo. As funções VirtualQuery e VirtualQueryEx usam essa estrutura.

Sintaxe

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;

Membros

BaseAddress

Um ponteiro para o endereço base da região de páginas.

AllocationBase

Um ponteiro para o endereço base de um intervalo de páginas alocado pela função VirtualAlloc . A página apontada pelo membro BaseAddress está contida nesse intervalo de alocação.

AllocationProtect

A opção de proteção de memória quando a região foi alocada inicialmente. Esse membro pode ser uma das constantes de proteção de memória ou 0 se o chamador não tiver acesso.

PartitionId

RegionSize

O tamanho da região começando no endereço base no qual todas as páginas têm atributos idênticos, em bytes.

State

O estado das páginas na região. Esse membro pode ser um dos valores a seguir.

Estado Significado
MEM_COMMIT
0x1000
Indica páginas confirmadas para as quais o armazenamento físico foi alocado, seja na memória ou no arquivo de paginação no disco.
MEM_FREE
0x10000
Indica páginas gratuitas não acessíveis ao processo de chamada e disponíveis para serem alocadas. Para páginas gratuitas, as informações nos membros AllocationBase, AllocationProtect, Protect e Type são indefinidas.
MEM_RESERVE
0x2000
Indica páginas reservadas em que um intervalo de espaço de endereço virtual do processo é reservado sem que nenhum armazenamento físico seja alocado. Para páginas reservadas, as informações no membro Protect são indefinidas.

Protect

A proteção de acesso das páginas na região. Esse membro é um dos valores listados para o membro AllocationProtect .

Type

O tipo de páginas na região. Os tipos a seguir são definidos.

Type Significado
MEM_IMAGE
0x1000000
Indica que as páginas de memória dentro da região são mapeadas para a exibição de uma seção de imagem.
MEM_MAPPED
0x40000
Indica que as páginas de memória dentro da região são mapeadas para a exibição de uma seção.
MEM_PRIVATE
0x20000
Indica que as páginas de memória dentro da região são privadas (ou seja, não compartilhadas por outros processos).

Comentários

Para habilitar um depurador para depurar um destino que está em execução em uma arquitetura diferente (32 bits versus 64 bits), use uma das formas explícitas dessa estrutura.

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;

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho winnt.h (inclua Windows.h)

Confira também

Virtualalloc

Virtualquery

VirtualQueryEx