共用方式為


IHostSecurityManager::SetSecurityContext 方法

設定目前執行的執行緒的安全性內容。

HRESULT SetSecurityContext (
    [in]  EContextType eContextType,
    [out] IHostSecurityContext** ppSecurityContext
);

參數

  • eContextType
    [in] 其中一個 EContextType 值,表示 Common Language Runtime (CLR) 要將哪一個內容型別放置在主應用程式上。

  • ppSecurityContext
    [out] 新 IHostSecurityContext 物件的位址指標。

傳回值

HRESULT

描述

S_OK

SetSecurityContext 已成功傳回。

HOST_E_CLRNOTAVAILABLE

CLR 尚未載入至處理序中,或者此 CLR 目前的狀態無法執行 Managed 程式碼或成功處理呼叫。

HOST_E_TIMEOUT

呼叫已逾時。

HOST_E_NOT_OWNER

呼叫端不具備鎖定功能。

HOST_E_ABANDONED

已封鎖執行緒或 Fiber 在等候事件時,該事件已遭取消。

E_FAIL

發生未知的重大錯誤。 當方法傳回 E_FAIL 時,便無法在處理序內使用 CLR。 對裝載方法的後續呼叫會傳回 HOST_E_CLRNOTAVAILABLE。

備註

CLR 會在幾個案例中呼叫 SetSecurityContext。 在它執行類別以及模組建構函式和完成項之前,CLR 會呼叫 SetSecurityContext,防止主應用程式執行失敗。 在執行完建構函式或完成項之後,它會將安全性內容重設為其原始狀態 (透過另一個 SetSecurityContext 呼叫)。 I/O 完成會有類似的模式。 如果主應用程式實作 IHostIoCompletionManager,則 CLR 會在主應用程式呼叫 ICLRIoCompletionManager::OnComplete 之後呼叫 SetSecurityContext

在背景工作執行緒內的非同步點上,CLR 會呼叫 ThreadPool.QueueUserWorkItemIHostThreadPoolManager::QueueUserWorkItem 內的 SetSecurityContext (視實作執行緒集區的是主應用程式還是 CLR 而定)。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**MSCorEE.h

程式庫:包含做為 MSCorEE.dll 中的資源

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

請參閱

參考

EContextType 列舉

ICLRIoCompletionManager 介面

IHostIoCompletionManager 介面

IHostSecurityContext 介面

IHostSecurityManager 介面

IHostThreadPoolManager 介面

System.Threading.ThreadPool