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.QueueUserWorkItem 或 IHostThreadPoolManager::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