Compartilhar via


Método IHostMemoryManager::VirtualProtect

Atua como um wrapper lógico para a função Win32 correspondente. A implementação de VirtualProtect pelo Win32 altera a proteção em uma região de páginas confirmadas no espaço de endereço virtual do processo de chamada.

Sintaxe

HRESULT VirtualProtect (  
    [in]  void*   lpAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flNewProtect,  
    [out] DWORD*  pflOldProtect  
);  

Parâmetros

lpAddress
[in] Um ponteiro para o endereço base da memória virtual cujos atributos de proteção devem ser alterados.

dwSize
[in] O tamanho, em bytes, da região de páginas de memória a ser alterada.

flNewProtect
[in] O tipo de proteção de memória a ser aplicada.

pflOldProtect
[out] Um ponteiro para o valor de proteção de memória anterior.

Valor Retornado

HRESULT Descrição
S_OK VirtualProtect retornado com êxito.
HOST_E_CLRNOTAVAILABLE O CLR (Common Language Runtime) não foi carregado em um processo ou está em um estado no qual não pode executar o código gerenciado ou processar a chamada com sucesso.
HOST_E_TIMEOUT Uma chamada atingiu o tempo limite.
HOST_E_NOT_OWNER O chamador não possui o bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele.
E_FAIL Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE.

Comentários

Essa implementação de VirtualProtect retorna um valor HRESULT, enquanto a implementação do Win32 retorna um valor diferente de zero para indicar êxito e um valor zero para indicar falha. Para saber mais, confira a documentação da plataforma Windows.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também