ICLRPolicyManager::SetDefaultAction 方法
指定在发生指定操作时公共语言运行时 (CLR) 应执行的策略操作。
语法
HRESULT SetDefaultAction (
[in] EClrOperation operation,
[in] EPolicyAction action
);
参数
operation
[in] EClrOperation 值之一,指示应对其自定义 CLR 行为的操作。
action
[in] EPolicyAction 值之一,指示发生 operation
时 CLR 应执行的策略操作。
返回值
HRESULT | 说明 |
---|---|
S_OK | 已成功返回 SetDefaultAction 。 |
HOST_E_CLRNOTAVAILABLE | CLR 未加载到进程中,或 CLR 处于无法运行托管代码或无法成功处理调用的状态。 |
HOST_E_TIMEOUT | 调用超时。 |
HOST_E_NOT_OWNER | 调用方未持有锁。 |
HOST_E_ABANDONED | 阻塞的线程或纤程正在等待某一事件,而该事件已被取消。 |
E_FAIL | 发生未知的灾难性故障。 某方法返回 E_FAIL 后,进程中无法再使用 CLR。 后续调用承载方法会返回 HOST_E_CLRNOTAVAILABLE。 |
E_INVALIDARG | 为 operation 指定了无效 action ,或为 operation 提供了无效值。 |
备注
并非所有策略操作值都可以指定为 CLR 操作的默认行为。 SetDefaultAction
通常只能用于升级行为。 例如,主机可以指定将线程中止转换为强制线程中止,但不能指定相反操作。 下表描述了每个可能 action
值的有效 operation
值。
operation 的值 |
action 的有效值 |
---|---|
OPR_ThreadAbort | - eAbortThread - eRudeAbortThread - eUnloadAppDomain - eRudeUnloadAppDomain - eExitProcess - eFastExitProcess - eRudeExitProcess - eDisableRuntime |
OPR_ThreadRudeAbortInNonCriticalRegion OPR_ThreadRudeAbortInCriticalRegion |
- eRudeAbortThread - eUnloadAppDomain - eRudeUnloadAppDomain - eExitProcess - eFastExitProcess - eRudeExitProcess - eDisableRuntime |
OPR_AppDomainUnload | - eUnloadAppDomain - eRudeUnloadAppDomain - eExitProcess - eFastExitProcess - eRudeExitProcess - eDisableRuntime |
OPR_AppDomainRudeUnload | - eRudeUnloadAppDomain - eExitProcess - eFastExitProcess - eRudeExitProcess - eDisableRuntime |
OPR_ProcessExit | - eExitProcess - eFastExitProcess - eRudeExitProcess - eDisableRuntime |
OPR_FinalizerRun | - eNoAction - eAbortThread - eRudeAbortThread - eUnloadAppDomain - eRudeUnloadAppDomain - eExitProcess - eFastExitProcess - eRudeExitProcess - eDisableRuntime |
要求
平台:请参阅系统要求。
标头:MSCorEE.h
库:作为资源包含在 MSCorEE.dll 中
.NET Framework 版本:自 2.0 起可用