SePrivilegeCheck 函数 (ntifs.h)

SePrivilegeCheck 例程确定是否在使用者的访问令牌中启用一组指定的特权。

语法

BOOLEAN SePrivilegeCheck(
  [in, out] PPRIVILEGE_SET            RequiredPrivileges,
  [in]      PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
  [in]      KPROCESSOR_MODE           AccessMode
);

参数

[in, out] RequiredPrivileges

指向 PRIVILEGE_SET 结构的指针。 此结构的 Privilege 成员是LUID_AND_ATTRIBUTES结构的数组。 在调用 SePrivilegeCheck 之前,请使用 Privilege 数组来指示要检查的权限集。 如果必须启用所有特权,请将 Control 成员设置为 PRIVILEGE_SET_ALL_NECESSARY;如果启用任一特权已足够,则将其设置为零。

当 SePrivilegeCheck 返回时,如果启用了相应的特权,则每个LUID_AND_ATTRIBUTES结构的 Attributes 成员将设置为 SE_PRIVILEGE_USED_FOR_ACCESS。

[in] SubjectSecurityContext

指向主题捕获的安全上下文的指针。

[in] AccessMode

用于特权检查的访问模式。 UserModeKernelMode。 如果 AccessMode 设置为 KernelMode,则所有权限都标记为主体拥有, SePrivilegeCheck 返回 TRUE

返回值

如果使用者持有所有指定特权,SePrivilegeCheck 将返回 TRUE;否则返回 FALSE

注解

访问令牌包含与令牌关联的帐户拥有的权限列表。 可以启用或禁用这些权限;默认情况下,大多数处于禁用状态。 SePrivilegeCheck 仅检查已启用的权限。 若要获取访问令牌拥有的所有已启用和禁用特权的列表,请调用 SeQueryInformationToken

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

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

LUID_AND_ATTRIBUTES

PRIVILEGE_SET

SECURITY_SUBJECT_CONTEXT

SeAccessCheck

SeAppendPrivileges

SeFreePrivileges

SeQueryInformationToken

SeSinglePrivilegeCheck