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: NtProtectVirtualMemoryAssinatura
BOOL VirtualProtect(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD flNewProtect,
PDWORD lpflOldProtect
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| lpAddress | LPVOID | Início da região. |
| dwSize | SIZE_T | Tamanho da região. |
| flNewProtect | DWORD | Nova proteção: PAGE_READWRITE, PAGE_EXECUTE_READ, PAGE_NOACCESS, etc. |
| lpflOldProtect | PDWORD | Recebe 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
Equivalente em Linux x86_64