Partilhar via


Método IHostMemoryManager::VirtualProtect

Serve como um wrapper lógico para a função Win32 correspondente. A implementação win32 de VirtualProtect altera a proteção numa região de páginas consolidadas no espaço de endereços 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 das páginas de memória a alterar.

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

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

Devolver Valor

HRESULT Description
S_OK VirtualProtect devolvido com êxito.
HOST_E_CLRNOTAVAILABLE O runtime de linguagem comum (CLR) não foi carregado para um processo ou o CLR está num estado em que não pode executar código gerido ou processar a chamada com êxito.
HOST_E_TIMEOUT A chamada excedeu o limite de tempo.
HOST_E_NOT_OWNER O autor da chamada não é o proprietário do bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera.
E_FAIL Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE.

Observações

Esta implementação de VirtualProtect devolve um valor HRESULT, enquanto a implementação Win32 devolve um valor diferente de zero para indicar êxito e um valor zero para indicar a falha. Para obter mais informações, consulte a documentação da Plataforma windows.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 2.0

Ver também