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
用于特权检查的访问模式。 UserMode 或 KernelMode。 如果 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 |