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 (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |