privilegeCheck 函数 (securitybaseapi.h)

PrivilegeCheck 函数确定是否在访问令牌中启用了一组指定的特权PrivilegeCheck 函数通常由服务器应用程序调用,以检查客户端访问令牌的权限。

语法

BOOL PrivilegeCheck(
  [in]      HANDLE         ClientToken,
  [in, out] PPRIVILEGE_SET RequiredPrivileges,
  [out]     LPBOOL         pfResult
);

参数

[in] ClientToken

表示客户端 进程的访问令牌的句柄。 必须通过打开模拟客户端的线程的令牌来获取此句柄。 必须打开令牌才能TOKEN_QUERY访问。

[in, out] RequiredPrivileges

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

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

[out] pfResult

指向函数设置的值的指针,该值指示是否在访问令牌中启用了任何或所有指定的特权。 如果PRIVILEGE_SET结构的 Control 成员指定PRIVILEGE_SET_ALL_NECESSARY,则仅当启用所有权限时,此值才为 TRUE;否则,如果启用了任何权限,则此值为 TRUE

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

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

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 securitybaseapi.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

AdjustTokenPrivileges

客户端/服务器访问控制函数

客户端/服务器访问控制概述

GetTokenInformation

LUID_AND_ATTRIBUTES

LookupPrivilegeValue

ObjectPrivilegeAuditAlarm

PRIVILEGE_SET

PrivilegedServiceAuditAlarm