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 |