GetTokenInformation 函数 (securitybaseapi.h)
GetTokenInformation 函数检索有关访问令牌的指定类型的信息。 调用进程必须具有适当的访问权限才能获取信息。
若要确定用户是否是特定组的成员,请使用 CheckTokenMembership 函数。 若要确定应用容器令牌的组成员身份,请使用 CheckTokenMembershipEx 函数。
语法
BOOL GetTokenInformation(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[out, optional] LPVOID TokenInformation,
[in] DWORD TokenInformationLength,
[out] PDWORD ReturnLength
);
parameters
[in] TokenHandle
从中检索信息的访问令牌的句柄。 如果 TokenInformationClass 指定 TokenSource,则句柄必须具有TOKEN_QUERY_SOURCE访问权限。 对于所有其他 TokenInformationClass 值,句柄必须具有TOKEN_QUERY访问权限。
[in] TokenInformationClass
指定 TOKEN_INFORMATION_CLASS 枚举类型的值,以标识函数检索的信息类型。 检查 TokenIsAppContainer 并使其返回 0 的任何调用方还应验证调用方令牌是否不是标识级别模拟令牌。 如果当前令牌不是应用容器,而是标识级别令牌,则应返回 AccessDenied。
[out, optional] TokenInformation
指向函数用请求的信息填充的缓冲区的指针。 放入此缓冲区中的结构取决于 TokenInformationClass 参数指定的信息类型。
[in] TokenInformationLength
指定 TokenInformation 参数指向的缓冲区的大小(以字节为单位)。 如果 TokenInformation 为 NULL,则此参数必须为零。
[out] ReturnLength
指向变量的指针,该变量接收 TokenInformation 参数指向的缓冲区所需的字节数。 如果此值大于 TokenInformationLength 参数中指定的值,则函数将失败,并且不会在缓冲区中存储任何数据。
如果 TokenInformationClass 参数的值为 TokenDefaultDacl,并且令牌没有默认 DACL,则该函数会将 ReturnLength 指向的变量设置为 sizeof(
TOKEN_DEFAULT_DACL)
,并将 TOKEN_DEFAULT_DACL 结构的 DefaultDacl 成员设置为 NULL。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | securitybaseapi.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |