Freigeben über


IHostSecurityManager::SetSecurityContext-Methode

Legt den Sicherheitskontext des aktuell ausgeführten Threads fest.

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

Parameter

  • eContextType
    [in] Einer der EContextType-Werte, die angeben, welche Art von Kontext die Common Language Runtime (CLR) auf dem Host platziert.

  • ppSecurityContext
    [out] Ein Zeiger auf die Adresse eines neuen IHostSecurityContext-Objekts.

Rückgabewert

HRESULT

Beschreibungen

S_OK

SetSecurityContext erfolgreich zurückgegeben.

HOST_E_CLRNOTAVAILABLE

Die CLR wurde nicht in einen Prozess geladen oder befindet sich in einem Zustand, in dem sie weder verwalteten Code ausführen noch den Aufruf erfolgreich verarbeiten kann.

HOST_E_TIMEOUT

Der Aufruf hat das Zeitlimit überschritten.

HOST_E_NOT_OWNER

Der Aufrufer ist nicht Besitzer der Sperre.

HOST_E_ABANDONED

Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber auf das Ereignis gewartet hat.

E_FAIL

Ein unbekannter, schwerwiegender Fehler ist aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR innerhalb des Prozesses nicht mehr verwendet werden. Nachfolgende Aufrufe von Hostmethoden geben HOST_E_CLRNOTAVAILABLE zurück.

Hinweise

Die CLR ruft SetSecurityContext in mehreren Szenarios auf. Vor dem Ausführen von Konstruktoren und Finalizern für Klassen und Module ruft die CLR SetSecurityContext auf, um den Host vor Ausführungsfehlern zu schützen. Nachdem der Konstruktor bzw. Finalizer ausgeführt wurde, versetzt sie den Sicherheitskontext mithilfe eines weiteren Aufrufs von SetSecurityContext in den ursprünglichen Zustand zurück. Ein ähnliches Muster ergibt sich beim E/A-Abschluss. Wenn der Host IHostIoCompletionManager implementiert, ruft die CLR SetSecurityContext auf, nachdem der Host ICLRIoCompletionManager::OnComplete aufgerufen hat.

An asynchronen Punkten in Arbeitsthreads ruft die CLR SetSecurityContext in ThreadPool.QueueUserWorkItem oder in IHostThreadPoolManager::QueueUserWorkItem auf, je nachdem, ob der Host oder die CLR den Threadpool implementiert.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: MSCorEE.h

Bibliothek: als Ressource in MSCorEE.dll enthalten

.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

EContextType-Enumeration

ICLRIoCompletionManager-Schnittstelle

IHostIoCompletionManager-Schnittstelle

IHostSecurityContext-Schnittstelle

IHostSecurityManager-Schnittstelle

IHostThreadPoolManager-Schnittstelle

System.Threading.ThreadPool