Partager via


IHostSecurityManager::SetSecurityContext, méthode

Définit le contexte de sécurité du thread en cours d'exécution.

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

Paramètres

  • eContextType
    [in] Une des valeurs EContextType indiquant le type de contexte que le Common Language Runtime (CLR) place sur l'hôte.

  • ppSecurityContext
    [out] Pointeur vers l'adresse d'un nouvel objet IHostSecurityContext.

Valeur de retour

HRESULT

Description

S_OK

SetSecurityContext a été retourné avec succès.

HOST_E_CLRNOTAVAILABLE

Le CLR n'a pas été chargé dans un processus ou le CLR présente un état dans lequel il ne peut pas exécuter de code managé ou traiter l'appel avec succès.

HOST_E_TIMEOUT

L'appel a expiré.

HOST_E_NOT_OWNER

L'appelant ne possède pas le verrou.

HOST_E_ABANDONED

Un événement a été annulé alors qu'un thread bloqué ou une fibre l'attendait.

E_FAIL

Une défaillance grave et inconnue s'est produite. Lorsqu'une méthode retourne E_FAIL, le CLR n'est plus utilisable dans le processus. Les appels suivants aux méthodes d'hébergement retournent HOST_E_CLRNOTAVAILABLE.

Notes

Le CLR appelle SetSecurityContext dans plusieurs scénarios. Avant d'exécuter les constructeurs et les finaliseurs de classes et de modules, le CLR appelle SetSecurityContext pour protéger l'hôte contre les erreurs d'exécution. Il réinitialise ensuite le contexte de sécurité à son état d'origine après avoir exécuté le constructeur ou le finaliseur, à l'aide d'un autre appel à SetSecurityContext. Un motif semblable se produit avec la terminaison d'E/S. Si l'hôte implémente IHostIoCompletionManager, le CLR appelle alors SetSecurityContext une fois que l'hôte a appelé ICLRIoCompletionManager::OnComplete.

Aux points asynchrones dans les threads de travail, le CLR appelle SetSecurityContext dans ThreadPool.QueueUserWorkItem ou dans IHostThreadPoolManager::QueueUserWorkItem, selon que le pool de threads est implémenté par l'hôte ou par le CLR.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : MSCorEE.h

Bibliothèque : incluse en tant que ressource dans MSCorEE.dll

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

EContextType, énumération

ICLRIoCompletionManager, interface

IHostIoCompletionManager, interface

IHostSecurityContext, interface

IHostSecurityManager, interface

IHostThreadPoolManager, interface

System.Threading.ThreadPool