共用方式為


IHostMemoryManager::VirtualProtect 方法

當做對應之 Win32 函式的邏輯包裝函式。 VirtualProtect 的 Win32 實作會在呼叫處理序的虛擬位址空間裡,變更認可頁面區域上的保護。

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

參數

  • lpAddress
    [in] 指標,指向要變更保護屬性的虛擬記憶體之基底位址。

  • dwSize
    [in] 要變更的記憶體分頁區域的大小 (以位元組計)。

  • flNewProtect
    [in] 要套用的記憶體保護類型。

  • pflOldProtect
    [out] 上一個記憶體保護值的指標。

傳回值

HRESULT

描述

S_OK

VirtualProtect 已成功傳回。

HOST_E_CLRNOTAVAILABLE

Common Language Runtime (CLR) 尚未載入至處理序中,或者此 CLR 目前的狀態無法執行 Managed 程式碼或成功處理呼叫。

HOST_E_TIMEOUT

呼叫已逾時。

HOST_E_NOT_OWNER

呼叫端不具備鎖定功能。

HOST_E_ABANDONED

已封鎖執行緒或 Fiber 在等候事件時,該事件已遭取消。

E_FAIL

發生未知的重大錯誤。 當方法傳回 E_FAIL 時,便無法在處理序內使用 CLR。 對裝載方法的後續呼叫會傳回 HOST_E_CLRNOTAVAILABLE。

備註

這個 VirtualProtect 實作會傳回 HRESULT 值,而 Win32 實作則會傳回表示成功的非零值,以及表示失敗的零值。 如需詳細資訊,請參閱 Windows 平台的說明文件。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**MSCorEE.h

程式庫:包含做為 MSCorEE.dll 中的資源

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

請參閱

參考

IHostMemoryManager 介面