EMemoryCriticalLevel Enumeration
Contains values that indicate the impact of a failure when a specific memory allocation has been requested but cannot be satisfied.
Syntax
typedef enum {
eTaskCritical = 0,
eAppDomainCritical = 1,
eProcessCritical = 2
} EMemoryCriticalLevel;
Members
Member | Description |
---|---|
eAppDomainCritical |
Indicates that the allocation is critical for executing managed code in the domain that has requested the allocation. If memory cannot be allocated, the CLR cannot guarantee that the domain is still usable. The host decides what action to take when the allocation cannot be satisfied. It can instruct the CLR to abort the AppDomain automatically, or allow it to keep running by calling methods on ICLRPolicyManager. |
eProcessCritical |
Indicates that the allocation is critical to the execution of managed code in the process. This value is used during startup and when running finalizers. If memory cannot be allocated, the CLR cannot operate in the process. If the allocation fails, the CLR is effectively disabled. All subsequent calls into the CLR fail with HOST_E_CLRNOTAVAILABLE. |
eTaskCritical |
Indicates that the allocation is critical to running the task that has requested the allocation. If memory cannot be allocated, the CLR cannot guarantee that the task can be executed. In the event of failure, the CLR raises a ThreadAbortException on the physical operation system thread. |
Remarks
The memory allocation methods defined in the IHostMemoryManager and IHostMAlloc interfaces take a parameter of this type. Depending upon the severity of a failure, a host can decide whether to fail the allocation request immediately or to wait until it can be satisfied.
Requirements
Platforms: See System Requirements.
Header: MSCorEE.h
Library: MSCorEE.dll
.NET Framework Versions: Available since 2.0
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.