Partilhar via


Método IHostSecurityManager::SetSecurityContext

Define o contexto de segurança do thread atualmente em execução.

Sintaxe

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

Parâmetros

eContextType
[in] Um dos valores EContextType , que indica o tipo de contexto que o runtime de idioma comum (CLR) está a colocar no anfitrião.

ppSecurityContext
[fora] Um ponteiro para o endereço de um novo objeto IHostSecurityContext .

Devolver Valor

HRESULT Description
S_OK SetSecurityContext devolvido com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado para um processo ou o CLR está num estado em que não pode executar código gerido ou processar a chamada com êxito.
HOST_E_TIMEOUT A chamada excedeu o limite de tempo.
HOST_E_NOT_OWNER O autor da chamada não é o proprietário do bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera do mesmo.
E_FAIL Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE.

Observações

O CLR chama SetSecurityContext em vários cenários. Antes de executar construtores e finalizadores de classes e módulos, o CLR chama SetSecurityContext para proteger o anfitrião contra falhas de execução. Em seguida, repõe o contexto de segurança para o estado original após a execução do construtor ou finalizador, utilizando outra chamada para SetSecurityContext. Ocorre um padrão semelhante com a conclusão de E/S. Se o anfitrião implementar IHostIoCompletionManager, o CLR chama SetSecurityContext depois de o anfitrião chamar ICLRIoCompletionManager::OnComplete.

Em pontos assíncronos em threads de trabalho, o CLR chama SetSecurityContext dentro ThreadPool.QueueUserWorkItem ou dentro de IHostThreadPoolManager::QueueUserWorkItem, dependendo se o anfitrião ou o CLR está a implementar o conjunto de threads.

Requisitos

Plataformas: Veja Requisitos do Sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 2.0

Ver também