SeCaptureSubjectContextEx 函数 (ntifs.h)

SeCaptureSubjectContextEx 快照调用线程的安全上下文,用于访问验证和审核。

语法

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

参数

Thread

[in]要从中捕获线程令牌的线程。 此参数是可选的。 如果为 NULL, 则 SeCaptureSubjectContextEx 不会捕获模拟令牌。

Process

[in]指向从中捕获主令牌 的进程 ID 的指针。

SubjectContext

[out]指向调用方分配的不透明 SECURITY_SUBJECT_CONTEXT 结构的指针。 SeCaptureSubjectContextEx 将在此结构中写入调用线程的安全配置文件的快照,其中包含对访问令牌的引用。 驱动程序不得修改或尝试直接访问此结构的任何成员以做出安全决策。 相反,为了避免授权中的安全问题,请在调用 SeAccessCheckSePrivilegeCheck 时传递此不透明结构。

返回值

备注

在执行访问验证或生成审核消息等服务之前,必须调用 SeCaptureSubjectContextEx 。 这是为例程提供一致的安全上下文所必需的,如下所示:

执行访问验证、权限检查和审核生成服务后,通过调用 SeReleaseSubjectContext 尽快释放捕获的上下文。

SeCaptureSubjectContextEx 在获取调用线程的安全上下文快照时根据需要锁定令牌。

返回时,访问令牌的引用包含在 SubjectContext 指向的结构中。 该结构的内容可能会更改。 若要防止出现这种情况,请调用 SeLockSubjectContext 来锁定主访问令牌以及与结构关联的任何模拟令牌。 例如,当使用在同一安全上下文中多次查询令牌信息的例程 ((如之前列出的) )时,请使用 SeLockSubjectContext 锁定主题上下文以获取一致的结果。

有关安全性和访问控制的详细信息,请参阅 面向驱动程序开发人员的 Windows 安全模型 和 Windows SDK 中有关这些主题的文档。

要求

要求
最低受支持的客户端 Windows Vista
标头 ntifs.h
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

SECURITY_SUBJECT_CONTEXT

SeLockSubjectContext

SePrivilegeCheck

SeQueryAuthenticationIdToken

SeQueryInformationToken

SeQuerySubjectContextToken

SeReleaseSubjectContext

SeUnlockSubjectContext