分享方式:


IHostMemoryManager::VirtualAlloc 方法

做為對應 Win32 函式的邏輯包裝函式。 VirtualAlloc 的 Win32 實作可在呼叫處理序的虛擬位址空間中保留或認可頁面區域。

語法

HRESULT VirtualAlloc (  
    [in]  void*   pAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flAllocationType,  
    [in]  DWORD   flProtect,  
    [in]  EMemoryCriticalLevel dwCriticalLevel,  
    [out] void**  ppMem  
);  

參數

pAddress
[in] 要配置之區域的起始位址指標。

dwSize
[in] 區域的大小 (以位元組為單位)。

flAllocationType
[in] 記憶體配置的類型。

flProtect
[in] 要配置之頁面區域的記憶體保護。

dwCriticalLevel
[in] EMemoryCriticalLevel 值,指出配置失敗的影響。

ppMem
[out] 已配置記憶體之起始位址的指標,如果無法滿足要求,則為 null。

傳回值

HRESULT 描述
S_OK VirtualAlloc 已成功傳回。
HOST_E_CLRNOTAVAILABLE 通用語言執行平台 (CLR) 尚未載入處理序,或 CLR 處於無法成功執行受控程式碼或處理呼叫的狀態。
HOST_E_TIMEOUT 呼叫逾時。
HOST_E_NOT_OWNER 呼叫端未擁有鎖定。
HOST_E_ABANDONED 封鎖的執行緒或 Fiber 在其上等候時,事件遭到取消。
E_FAIL 發生未知的重大失敗。 如果方法傳回 E_FAIL,則 CLR 就無法再用於處理序。 後續對裝載方法發出的呼叫會傳回 HOST_E_CLRNOTAVAILABLE。
E_OUTOFMEMORY 記憶體不足,無法完成配置要求。

備註

您可藉由呼叫 VirtualAlloc ,在處理序的位址空間中保留區域。 pAddress 參數包含您想要之記憶體區塊的開頭位址。 此參數通常會設定為 null。 作業系統會記錄可供您的處理序使用的免費位址範圍。 值為 null 的 pAddress會指示系統在看到符合的區域時保留區域。 或者,您可以提供記憶體區塊的特定起始位址。 在這兩種情況下,輸出參數 ppMem 會當作已配置記憶體的指標傳回。 函式本身會傳回 HRESULT 值。

Win32 VirtualAlloc 函式沒有 ppMem 參數,而會傳回已配置記憶體的指標。 如需詳細資訊,請參閱 Windows 平台文件。

規格需求

平台:請參閱系統需求

標題: MSCorEE.h

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

.NET Framework版本:自 2.0 起提供

另請參閱