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结构 成员 属性设置为SE_PRIVILEGE_USED_FOR_ACCESS。
[in] SubjectSecurityContext
指向主题捕获的安全上下文的指针。
[in] AccessMode
用于特权检查的访问模式。 UserMode 或 KernelMode。 如果 AccessMode 设置为 KernelMode,则所有特权都标记为主题拥有,SePrivilegeCheck 返回 true 。
返回值
SePrivilegeCheck 返回 true true(如果主题持有所有指定权限 ,则为 FALSE 否则)。
言论
访问令牌包含与令牌关联的帐户持有的特权列表。 可以启用或禁用这些特权;大多数默认处于禁用状态。 SePrivilegeCheck 仅检查已启用的权限。 若要获取访问令牌持有的所有已启用和禁用权限的列表,请调用 SeQueryInformationToken。
有关安全和访问控制的详细信息,请参阅适用于驱动程序开发人员 Windows 安全模型,以及有关 Windows SDK 中这些主题的文档。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |