Voltar à lista
Windows Win32Memóriakernel32.dll

VirtualProtect

Altera as permissões de proteção de uma região de memória já alocada.

Descrição

Equivalente direto do `mprotect` do Linux — usado, por exemplo, para marcar código JIT como executável apenas depois de gerado (W^X).

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

Assinatura

BOOL VirtualProtect(
    LPVOID lpAddress,
    SIZE_T dwSize,
    DWORD flNewProtect,
    PDWORD lpflOldProtect
);

Parâmetros

ParâmetroTipoDescrição
lpAddressLPVOIDInício da região.
dwSizeSIZE_TTamanho da região.
flNewProtectDWORDNova proteção: PAGE_READWRITE, PAGE_EXECUTE_READ, PAGE_NOACCESS, etc.
lpflOldProtectPDWORDRecebe a proteção anterior.

Valor de retorno

Diferente de zero em sucesso; 0 em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_INVALID_PARAMETER(87)
Parâmetro incorreto.

Relacionadas