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 起提供