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 值(而不是指向它的指针),该值指定令牌的完整性级别。 |
返回值
返回代码 | 描述 |
---|---|
|
调用 SeQueryInformationToken 成功。 |
|
TokenInformationClass提供了无效值。 |
言论
有关安全和访问控制的详细信息,请参阅适用于驱动程序开发人员 Windows 安全模型,以及有关 Windows SDK 中这些主题的文档。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 |
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |