设置当前正在执行的线程的安全上下文。
Syntax
HRESULT SetSecurityContext (
[in] EContextType eContextType,
[out] IHostSecurityContext** ppSecurityContext
);
参数
eContextType [in] EContextType 值之一,指示公共语言运行时(CLR)放置在主机上的上下文类型。
ppSecurityContext [out]指向新 IHostSecurityContext 对象的地址的指针。
返回值
| HRESULT | 说明 |
|---|---|
| S_OK |
SetSecurityContext 已成功返回。 |
| HOST_E_CLRNOTAVAILABLE | CLR 尚未加载到进程中,或者 CLR 处于无法运行托管代码或成功处理调用的状态。 |
| HOST_E_TIMEOUT | 调用超时。 |
| HOST_E_NOT_OWNER | 调用方不拥有锁。 |
| HOST_E_ABANDONED | 当阻塞的线程或光纤正在等待该事件时,事件已取消。 |
| E_FAIL | 发生了未知的灾难性故障。 当方法返回E_FAIL时,CLR 在进程中不再可用。 对宿主方法的后续调用返回HOST_E_CLRNOTAVAILABLE。 |
注解
在多个方案中调用 SetSecurityContext CLR。 在执行类和模块构造函数和终结器之前,CLR 将调用 SetSecurityContext 以保护主机免受执行失败的影响。 然后,它通过使用对构造函数或终结器的另一个调用 SetSecurityContext将安全上下文重置为其原始状态。 I/O 完成时会出现类似的模式。 如果主机实现 IHostIoCompletionManager,则主机调用 ICLRIoCompletionManager::OnComplete 之后的 CLR 调用SetSecurityContext。
在工作线程中的异步点,CLR 在 IHostThreadPoolManager::QueueUserWorkItem 中ThreadPool.QueueUserWorkItem调用SetSecurityContext,具体取决于主机还是 CLR 正在实现线程池。
要求
平台:请参阅系统要求。
页眉: MSCorEE.h
图书馆: 作为资源包含在 MSCorEE.dll
.NET Framework 版本: 自 2.0 起可用