Condividi tramite


Metodo IHostSecurityManager::SetSecurityContext

Imposta il contesto di sicurezza del thread attualmente in esecuzione.

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

Parametri

  • eContextType
    [in] Uno dei valori di EContextType, che indica il tipo di contesto che Common Language Runtime (CLR) inserisce sull'host.

  • ppSecurityContext
    [out] Puntatore all'indirizzo di un nuovo oggetto IHostSecurityContext.

Valore restituito

HRESULT

Oggetto di descrizione

S_OK

SetSecurityContext ha restituito correttamente un valore.

HOST_E_CLRNOTAVAILABLE

Common Language Runtime non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare correttamente la chiamata.

HOST_E_TIMEOUT

Timeout della chiamata.

HOST_E_NOT_OWNER

Il chiamante non è il proprietario del blocco.

HOST_E_ABANDONED

Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento.

E_FAIL

Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE.

Note

CLR chiama SetSecurityContext in diversi scenari. Prima di eseguire costruttori e finalizzatori di classi e moduli, Common Language Runtime (CLR) chiama SetSecurityContext per proteggere l'host da errori di esecuzione. Dopo l'esecuzione del costruttore o finalizzatore, Common Language Runtime reimposta lo stato originale del contesto di sicurezza mediante un'altra chiamata a SetSecurityContext. Un processo simile avviene per il completamento I/O. Se l’host implementa IHostIoCompletionManager, CLR chiama SetSecurityContext dopo che l’host ha chiamato ICLRIoCompletionManager::OnComplete.

In punti asincroni di thread di lavoro CLR chiama SetSecurityContext all'interno di ThreadPool.QueueUserWorkItem o di IHostThreadPoolManager::QueueUserWorkItem, a seconda che l'implementazione del pool di thread sia eseguita dall'host o da CLR.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: inclusa come risorsa in MSCorEE.dll

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Enumerazione EContextType

Interfaccia ICLRIoCompletionManager

Interfaccia IHostIoCompletionManager

Interfaccia IHostSecurityContext

Interfaccia IHostSecurityManager

Interfaccia IHostThreadPoolManager

System.Threading.ThreadPool