Voltar à lista
Windows Win32Memóriakernel32.dll

VirtualAlloc

Reserva e/ou confirma (commit) uma região de memória virtual no espaço de endereçamento do processo chamador.

Descrição

Equivalente aproximado do `mmap` anônimo do Linux, mas com o conceito adicional de duas fases: memória pode ser 'reservada' (endereços garantidos, mas sem página física associada) e depois 'confirmada' (commit, quando efetivamente passa a contar contra o limite de memória do sistema).

Header: memoryapi.hDLL: kernel32.dllNative API: NtAllocateVirtualMemory

Assinatura

LPVOID VirtualAlloc(
    LPVOID lpAddress,
    SIZE_T dwSize,
    DWORD flAllocationType,
    DWORD flProtect
);

Parâmetros

ParâmetroTipoDescrição
lpAddressLPVOIDEndereço sugerido, ou NULL para o sistema escolher.
dwSizeSIZE_TTamanho da região em bytes.
flAllocationTypeDWORDMEM_COMMIT, MEM_RESERVE, MEM_RESET, MEM_LARGE_PAGES.
flProtectDWORDPAGE_READWRITE, PAGE_EXECUTE_READ, PAGE_NOACCESS, etc.

Valor de retorno

Endereço base da região alocada em sucesso; NULL em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_INVALID_PARAMETER(87)
Parâmetro incorreto.
ERROR_NOT_ENOUGH_MEMORY(8)
Memória insuficiente para processar o comando.
ERROR_COMMITMENT_LIMIT(1455)
O arquivo de paginação é pequeno demais para completar esta operação.

Relacionadas