IHostSecurityManager::SetSecurityContext-Methode
Legt den Sicherheitskontext des derzeit ausgeführten Threads fest.
Syntax
HRESULT SetSecurityContext (
[in] EContextType eContextType,
[out] IHostSecurityContext** ppSecurityContext
);
Parameter
eContextType
[in] Einer der EContextType-Werte, der angibt, welchen Kontexttyp die Common Language Runtime (CLR) auf dem Host platziert.
ppSecurityContext
[out] Ein Zeiger auf die Adresse eines neuen IHostSecurityContext-Objekts.
Rückgabewert
HRESULT | BESCHREIBUNG |
---|---|
S_OK | SetSecurityContext wurde erfolgreich zurückgegeben. |
HOST_E_CLRNOTAVAILABLE | Die CLR wurde nicht in einen Prozess geladen, oder die CLR befindet sich in einem Zustand, in dem sie keinen verwalteten Code ausführen oder den Aufruf nicht erfolgreich verarbeiten kann. |
HOST_E_TIMEOUT | Timeout des Aufrufs. |
HOST_E_NOT_OWNER | Der Aufrufer besitzt die Sperre nicht. |
HOST_E_ABANDONED | Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber darauf gewartet hat. |
E_FAIL | Es ist ein unbekannter katastrophaler Fehler aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR nicht mehr innerhalb des Prozesses verwendet werden. Nachfolgende Aufrufe von Hostingmethoden geben HOST_E_CLRNOTAVAILABLE zurück. |
Bemerkungen
Die CLR ruft SetSecurityContext
in mehreren Szenarien auf. Bevor sie Klassen- und Modulkonstruktoren und Finalizer ausführt, ruft die CLR SetSecurityContext
auf, um den Host vor Ausführungsfehlern zu schützen. Nach der Ausführung des Konstruktors oder Finalizers setzt sie dann den Sicherheitskontext auf den ursprünglichen Zustand zurück, indem sie einen weiteren Aufruf von SetSecurityContext
verwendet. Ein ähnliches Muster tritt bei E/A-Abschluss auf. Wenn der Host IHostIoCompletionManager implementiert, ruft die CLR SetSecurityContext
auf, nachdem der Host ICLRIoCompletionManager::OnComplete aufgerufen hat.
An asynchronen Punkten in Workerthreads ruft SetSecurityContext
die CLR innerhalb ThreadPool.QueueUserWorkItem oder innerhalb von IHostThreadPoolManager::QueueUserWorkItem auf, je nachdem, ob der Host oder die CLR den Threadpool implementiert.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: MSCorEE.h
Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.
.NET Framework-Versionen: Seit 2.0 verfügbar.