Sdílet prostřednictvím


IHostSecurityManager::SetSecurityContext – metoda

Nastaví kontext zabezpečení aktuálně spuštěného vlákna.

Syntaxe

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

Parametry

eContextType
[v] Jedna z hodnot EContextType , které označují, jaký typ kontextu common language runtime (CLR) umístí na hostitele.

ppSecurityContext
[out] Ukazatel na adresu nového IHostSecurityContext objektu.

Návratová hodnota

HRESULT Description
S_OK SetSecurityContext úspěšně vráceno.
HOST_E_CLRNOTAVAILABLE ClR nebyl načten do procesu nebo clr je ve stavu, ve kterém nemůže spustit spravovaný kód nebo úspěšně zpracovat volání.
HOST_E_TIMEOUT Časový limit hovoru vypršel.
HOST_E_NOT_OWNER Volající zámek nevlastní.
HOST_E_ABANDONED Událost byla zrušena, zatímco na ni čekalo blokované vlákno nebo vlákno.
E_FAIL Došlo k neznámému závažnému selhání. Když metoda vrátí E_FAIL, clr již není možné v rámci procesu použít. Následná volání metod hostování vrátí HOST_E_CLRNOTAVAILABLE.

Poznámky

ClR volá SetSecurityContext v několika scénářích. Před spuštěním konstruktorů tříd a modulů a finalizátorů volá CLR SetSecurityContext , aby chránil hostitele před selháním spuštění. Potom po spuštění konstruktoru nebo finalizátoru resetuje kontext zabezpečení do původního stavu pomocí jiného volání SetSecurityContext. K podobnému vzoru dochází při dokončování vstupně-výstupních operací. Pokud hostitel implementuje IHostIoCompletionManager, CLR volá SetSecurityContext po hostitel volání ICLRIoCompletionManager::OnComplete.

V asynchronních bodech v pracovních vláknech volá SetSecurityContext CLR v rámci ThreadPool.QueueUserWorkItem nebo v rámci IHostThreadPoolManager::QueueUserWorkItem, v závislosti na tom, zda hostitel nebo CLR implementuje fond vláken.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: MSCorEE.h

Knihovny: Zahrnutý jako prostředek v MSCorEE.dll

Verze rozhraní .NET Framework: K dispozici od verze 2.0

Viz také