Функция 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 , содержащую идентификатор безопасности владельца по умолчанию для вновь созданных объектов.
TokenPrimaryGroup Буфер получает структуру TOKEN_PRIMARY_GROUP , содержащую идентификатор безопасности основной группы по умолчанию для вновь созданных объектов.
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 (включая 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