SeQueryInformationToken 函数 (ntifs.h)

SeQueryInformationToken 例程检索有关访问令牌的指定类型信息。 调用过程必须具有适当的访问权限才能获取信息。

语法

NTSTATUS SeQueryInformationToken(
  [in]  PACCESS_TOKEN           Token,
  [in]  TOKEN_INFORMATION_CLASS TokenInformationClass,
  [out] PVOID                   *TokenInformation
);

参数

[in] Token

指向要从中检索信息的访问令牌的指针。 如果 TokenInformationClass 设置为 TokenSource,则句柄必须具有TOKEN_QUERY_SOURCE访问权限。 对于所有其他 TokenInformationClass 值,句柄必须具有TOKEN_QUERY访问权限。

[in] TokenInformationClass

一个来自 TOKEN_INFORMATION_CLASS 枚举类型的值,用于标识要检索的信息的类型。

[out] TokenInformation

如果返回STATUS_SUCCESS,TokenInformation 将接收指向包含包含所请求信息的缓冲区地址的位置的指针。 此信息缓冲区的格式取决于 TokenInformationClass的值,如下表所示。 请注意,缓冲区是通过从分页池 SeQueryInformationToken 分配的。 最终必须使用 ExFreePool来释放调用方释放此缓冲区。

价值 描述
TokenDefaultDacl 缓冲区接收一个 TOKEN_DEFAULT_DACL 结构,该结构包含新创建的对象的默认 DACL。
TokenGroups 缓冲区接收一个 TOKEN_GROUPS 结构,其中包含与令牌关联的组帐户。
TokenImpersonationLevel 缓冲区接收一个 SECURITY_IMPERSONATION_LEVEL 值,该值指示令牌的模拟级别。 如果访问令牌不是模拟令牌,则调用 SeQueryInformationToken 失败。
TokenOwner 缓冲区接收一个 TOKEN_OWNER 结构,该结构包含新创建的对象的默认所有者安全标识符(SID)。
TokenPrimaryGroup 缓冲区接收一个 TOKEN_PRIMARY_GROUP 结构,该结构包含新创建对象的默认主组 SID。
TokenPrivileges 缓冲区接收包含令牌特权的 TOKEN_PRIVILEGES 结构。
TokenSessionId 缓冲区接收一个 DWORD 值(而不是指向它的指针),该值指示与令牌关联的终端服务会话标识符。 如果令牌与终端服务器控制台会话相关联,则会话标识符为零。 非零会话标识符指示终端服务客户端会话。 在非终端服务环境中,会话标识符为零。
TokenSource 缓冲区接收包含令牌源的 TOKEN_SOURCE 结构。 检索此信息需要TOKEN_QUERY_SOURCE访问权限。
TokenStatistics 缓冲区接收包含各种令牌统计信息的 TOKEN_STATISTICS 结构。
TokenType 缓冲区接收一个 TOKEN_TYPE 值,该值指示令牌是主令牌还是模拟令牌。
TokenUser 缓冲区接收包含令牌用户帐户的 TOKEN_USER 结构。
TokenIntegrityLevel 缓冲区接收一个 DWORD 值(而不是指向它的指针),该值指定令牌的完整性级别。

返回值

返回代码 描述
STATUS_SUCCESS
调用 SeQueryInformationToken 成功。
STATUS_INVALID_INFO_CLASS
TokenInformationClass提供了无效值。

言论

有关安全和访问控制的详细信息,请参阅适用于驱动程序开发人员 Windows 安全模型,以及有关 Windows SDK 中这些主题的文档。

要求

要求 价值
最低支持的客户端 Windows 2000
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

PsDereferenceImpersonationToken

PsDereferencePrimaryToken

SECURITY_IMPERSONATION_LEVEL

SID

SeQueryAuthenticationIdToken

SeQuerySubjectContextToken

SeTokenIsAdmin

SeTokenIsRestricted

TOKEN_DEFAULT_DACL

TOKEN_GROUPS

TOKEN_INFORMATION_CLASS

TOKEN_OWNER

TOKEN_PRIMARY_GROUP

TOKEN_PRIVILEGES

TOKEN_SOURCE

TOKEN_STATISTICS

TOKEN_TYPE

TOKEN_USER