次の方法で共有


IHostSecurityManager::SetSecurityContext メソッド

現在実行中のスレッドのセキュリティ コンテキストを設定します。

構文

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

パラメーター

eContextType [in]共通言語ランタイム (CLR) がホストに配置しているコンテキストの種類を示す EContextType 値の 1 つ。

ppSecurityContext [out]新しい IHostSecurityContext オブジェクトのアドレスへのポインター。

戻り値

HRESULT 説明
S_OK SetSecurityContext が正常に返されました。
HOST_E_CLRNOTAVAILABLE CLR がプロセスに読み込まれていないか、CLR がマネージド コードを実行できないか、呼び出しを正常に処理できない状態です。
HOST_E_TIMEOUT 通話がタイムアウトしました。
HOST_E_NOT_OWNER 呼び出し元はロックを所有していません。
HOST_E_ABANDONED ブロックされたスレッドまたはファイバーが待機している間にイベントが取り消されました。
E_FAIL 不明な致命的なエラーが発生しました。 メソッドがE_FAILを返すと、CLR はプロセス内で使用できなくなります。 後続のホスティング メソッドの呼び出しでは、HOST_E_CLRNOTAVAILABLEが返されます。

注釈

CLR は、いくつかのシナリオで SetSecurityContext を呼び出します。 クラスとモジュールのコンストラクターとファイナライザーを実行する前に、CLR はホストを実行エラーから保護するために SetSecurityContext を呼び出します。 その後、 SetSecurityContextの別の呼び出しを使用して、コンストラクターまたはファイナライザーの実行後にセキュリティ コンテキストを元の状態にリセットします。 I/O 補完でも同様のパターンが発生します。 ホストが IHostIoCompletionManager を実装している場合、ホストが ICLRIoCompletionManager::OnComplete を呼び出した後、CLR はSetSecurityContextを呼び出します。

ワーカー スレッド内の非同期ポイントでは、ホストまたは CLR がスレッド プールを実装しているかどうかに応じて、CLR はThreadPool.QueueUserWorkItem内または IHostThreadPoolManager::QueueUserWorkItem 内でSetSecurityContextを呼び出します。

必要条件

:システム要件」を参照してください。

ヘッダ: MSCorEE.h

図書館: MSCorEE.dll にリソースとして含まれる

.NET Framework のバージョン: 2.0 以降で利用可能

こちらも参照ください