次の方法で共有


IHostSecurityManager::OpenThreadToken メソッド

現在実行中のスレッドに関連付けられている随意アクセス トークンを開きます。

構文

HRESULT OpenThreadToken (  
    [in]  DWORD    dwDesiredAccess,
    [in]  BOOL     bOpenAsSelf,
    [out] HANDLE   *phThreadToken  
);  

パラメーター

dwDesiredAccess
[in] スレッド トークンへの要求されたアクセスの種類を指定するアクセス値のマスク。 これらの値は、Win32 OpenThreadToken 関数で定義されています。 付与または拒否するアクセスの種類を決定するために、要求されたアクセスの種類は、トークンの随意アクセス制御リスト (DACL) に対して調整されます。

bOpenAsSelf
[in] 呼び出し元スレッドのプロセスのセキュリティ コンテキストを使用してアクセス チェックを行うように指定する場合は true、呼び出し元スレッド自体のセキュリティ コンテキストを使用してアクセス チェックを実行するように指定する場合は false。 スレッドがクライアントを偽装している場合は、クライアント プロセスのセキュリティ コンテキストが考えられます。

phThreadToken
[out] 新しく開かれたアクセス トークンへのポインター。

戻り値

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

解説

IHostSecurityManager::OpenThreadToken は、同じ名前の対応する Win32 関数と同じように動作します。ただし、Win32 関数では、呼び出し元が任意のスレッドへのハンドルを渡すことを許可しますが、IHostSecurityManager::OpenThreadToken では呼び出し元のスレッドに関連付けられたトークンのみを開くことができます。

HANDLE 型は COM に準拠していません。つまり、そのサイズはオペレーティング システムに固有であり、カスタム マーシャリングが必要です。 したがって、このトークンは、CLR とホストの間のプロセス内でのみ使用されます。

必要条件

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

ヘッダー: MSCorEE.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

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

関連項目