次の方法で共有


SeCaptureSubjectContextEx 関数 (ntifs.h)

SeCaptureSubjectContextEx は、アクセスの検証と監査のために、呼び出し元スレッドのセキュリティ コンテキストのスナップショットを受け取ります。

構文

void SeCaptureSubjectContextEx(
  PETHREAD                  Thread,
  PEPROCESS                 Process,
  PSECURITY_SUBJECT_CONTEXT SubjectContext
);

パラメーター

Thread

[入力]スレッド トークンをキャプチャするスレッド。 このパラメーターは省略可能です。 NULL の場合、 SeCaptureSubjectContextEx は偽装トークンをキャプチャしません。

Process

[入力]プライマリ トークンをキャプチャする プロセスの ID へのポインター。

SubjectContext

[out]不透明な呼び出し元によって割り当てられた SECURITY_SUBJECT_CONTEXT 構造体へのポインター。 SeCaptureSubjectContextEx は、この構造体にアクセス トークンへの参照を含む呼び出し元スレッドのセキュリティ プロファイルのスナップショットを書き込みます。 ドライバーは、セキュリティ上の決定を行うために、この構造のメンバーに変更を加えたり、直接アクセスしたりしてはなりません。 代わりに、承認のセキュリティの問題を回避するために、 SeAccessCheck または SePrivilegeCheck の呼び出しでこの不透明な構造体を渡します。

戻り値

なし

解説

アクセス検証や監査メッセージの生成などのサービスを実行する前に、 SeCaptureSubjectContextEx を呼び出す必要があります。 これは、次のようなルーチンに一貫したセキュリティ コンテキストを提供するために必要です。

アクセス検証、特権チェック、および監査生成サービスが実行されたら、 SeReleaseSubjectContext を呼び出して、キャプチャされたコンテキストをできるだけ早く解放します。

SeCaptureSubjectContextEx は、呼び出し元スレッドのセキュリティ コンテキストのスナップショットを取得しながら、必要に応じてトークンをロックします。

戻り値の場合、アクセス トークンへの参照は 、SubjectContext が指す構造体に含まれます。 その構造の内容は変更される可能性があります。 これを防ぐには、 SeLockSubjectContext を呼び出して、プライマリ アクセス トークンと、 構造体に関連付けられている偽装トークンをロックします。 たとえば、同じセキュリティ コンテキスト (前述のものなど) でトークン情報を複数回照会するルーチンを使用する場合は、サブジェクト コンテキストを SeLockSubjectContext でロックして一貫した結果を取得します。

セキュリティとアクセス制御の詳細については、 ドライバー開発者向けの Windows セキュリティ モデル と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista
Header ntifs.h
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL

こちらもご覧ください

SECURITY_SUBJECT_CONTEXT

SeLockSubjectContext

SePrivilegeCheck

SeQueryAuthenticationIdToken

SeQueryInformationToken

SeQuerySubjectContextToken

SeReleaseSubjectContext

SeUnlockSubjectContext