VirtualProtectEx
9/8/2008
Essa função altera a proteção acessar em uma região de páginas confirmadas a espaço de endereço virtual da processo de chamada.
Syntax
BOOL VirtualProtectEx(
HANDLE hProcess,
LPVOID lpAddress,
DWORD dwSize,
DWORD flNewProtect,
PDWORD lpflOldProtect
);
Parameters
- hProcess
[no] Identificador para o processo.
- lpAddress
[no] Ponteiro para o endereço de base da região de páginas cujos atributos de proteção acessar estão a ser alterado. Todas as páginas a região especificada devem ser alocadas em um único chamar a função de VirtualAlloc. As páginas não podem espalhar adjacente regiões que foram alocadas por separar chama para O VirtualAlloc.
- dwSize
[no] Especifica o tamanho, em bytes, da região cujos atributos de proteção acessar estão a ser alterado. A região de páginas afetadas inclui todas as páginas que contêm um ou mais bytes no intervalo a partir de lpAddress parâmetro para lpAddress + dwSize. Isso significa que um 2-intervalo byte espalhados um limite página faz com que os atributos de proteção de ambas as páginas a ser alterada.
flNewProtect
[no] Especifica a nova proteção acessar.Você pode especificar qualquer um do seguinte sinalizadores, along with os sinalizadores modificador de proteção PAGE_GUARD e PAGE_NOCACHE, conforme necessário.
Valor Descrição PAGE_EXECUTE
Permite executar acessar à região confirmada de páginas.
Tentar ler ou gravar os resultados confirmada região em um violação de acesso.
PAGE_EXECUTE_READ
Ler e executar permite acessar à região confirmada de páginas.
Uma tentativa para gravar a região confirmada resulta em um violação de acesso.
PAGE_GUARD
Páginas na região se tornam páginas de proteção.
Tentar acessar uma página de proteção faz com que o sistema para aumentar uma exceção STATUS_GUARD_PAGE e desativar o status página de proteção. Proteção, portanto, páginas trabalhar como um alarme acessar one-shot.
O sinalizador PAGE_GUARD é um modificador de proteção página. Um aplicativo usa-lo com um dos outros página proteção sinalizadores, com uma exceção: Ele não pode ser usado com PAGE_NOACCESS.
Quando uma tentativa acessar leva o sistema para desativar Proteção página status, o subjacente proteção página terá sobre.
Se ocorrer uma exceção página de guarda durante um serviço sistema, a serviço geralmente retorna um indicador status falha.
PAGE_NOACCESS
Desativa todos os acessar à região confirmada de páginas.
Tentar ler a partir, Gravação para ou executar nos resultados da região confirmada em uma exceção violação de acesso, chamado uma falha de proteção geral (GP).
PAGE_NOCACHE
Permite que nenhum cache das regiões confirmadas de páginas.
Os atributos hardware para o físico memória deve ser especificada como Não armazenar em cache. Isso não é recomendável para uso geral. Ele é útil para drivers dispositivo; de exemplo, mapeamento um vídeo reserva quadro com nenhum cache.
Este sinalizador é um modificador de proteção página e é válido quando usado com uma proteção página Other Than PAGE_NOACCESS.
PAGE_READONLY
Ler permite acessar à região confirmada de páginas.
Uma tentativa para gravar a região confirmada resulta em um violação de acesso.
Se o sistema diferencia acessar Read-only e acessar executar, tentar executar codificar nos resultados da região confirmada em um violação de acesso.
- lpflOldProtect
[out] Ponteiro longo para uma variável que a função define como o valor de proteção acessar anterior da primeira página na região especificada de páginas. Se este parâmetro é NULL ou não apontar para um válido variável, o função falhar.
Return Value
Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
Para obter mais informações, consulte VirtualProtect.
Requirements
Header | winbase.h |
Library | coredll.lib |
Windows Embedded CE | Windows Embedded CE 6.0 and later |
See Also
Reference
Memory Management Functions
VirtualAlloc