更新:2007 年 11 月
请求宿主从堆中分配指定的内存数。
HRESULT Alloc (
    [in] SIZE_T  cbSize, 
    [in] EMemoryCriticalLevel dwCriticalLevel, 
    [out] void** ppMem
);
参数
- cbSize 
 [in] 当前内存分配请求的大小,以字节为单位。
- dwCriticalLevel 
 [in] EMemoryCriticalLevel 的值之一,指示分配失败造成的影响。
- ppMem 
 [out] 一个指向所分配内存的指针,如果无法完成请求则为 Null。
返回值
| HRESULT | 说明 | 
|---|---|
| S_OK | Alloc 成功返回。 | 
| HOST_E_CLRNOTAVAILABLE | 公共语言运行库 (CLR) 尚未加载到进程中或者处于无法运行托管代码或成功处理调用的状态。 | 
| HOST_E_TIMEOUT | 调用超时。 | 
| HOST_E_NOT_OWNER | 调用方不拥有锁。 | 
| HOST_E_ABANDONED | 事件在被阻止的线程或纤程正在等待它时被取消。 | 
| E_FAIL | 发生了未知的灾难性故障。如果某方法返回 E_FAIL,CLR 便无法再在进程中使用。对宿主方法的后续调用都将返回 HOST_E_CLRNOTAVAILABLE。 | 
| E_OUTOFMEMORY | 没有足够的可用内存,无法完成分配请求。 | 
备注
通过调用 IHostMemoryManager::CreateMAlloc 方法,CLR 将获取指向 IHostMalloc 实例的接口指针。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**MSCorEE.idl
**库:**作为一项资源包含在 MSCorEE.dll 中
**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0