Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Программа ZwSetInformationToken изменяет сведения в указанном токене. Вызывающий процесс должен иметь соответствующие права доступа для задания сведений.
Синтаксис
NTSYSAPI NTSTATUS ZwSetInformationToken(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[in] PVOID TokenInformation,
[in] ULONG TokenInformationLength
);
Параметры
[in] TokenHandle
Дескриптор маркера доступа, в котором необходимо изменить сведения.
[in] TokenInformationClass
Значение из перечисленного типа TOKEN_INFORMATION_CLASS, определяющего тип измененной информации. Возможные значения этого параметра перечислены в столбце TokenInformationClass Значение таблицы, показанной в описании параметра TokenInformation.
[in] TokenInformation
Указатель на буфер, предоставленный вызывающей стороной, содержащий сведения, которые необходимо изменить в маркере. Структура информации в этом буфере зависит от значения TokenInformationClass, как показано в следующей таблице. Все структуры должны быть выровнены по 32-разрядной границе.
| Значение TokenInformationClass | Влияние на буфер TokenInformation |
|---|---|
| TokenDefaultDacl | Буфер содержит структуру TOKEN_DEFAULT_DACL, указывающую DACL по умолчанию для вновь созданных объектов. для задания этих сведений требуется доступ TOKEN_ADJUST_DEFAULT. Содержимое буфера не проверяется для структурной правильности или согласованности. |
| TokenGroups | Недопустимый класс сведений. Эта информация доступна только для чтения. |
| токена |
Буфер содержит структуру TOKEN_OWNER, указывающую владельца по умолчанию sid для вновь созданных объектов. для задания этих сведений требуется доступ TOKEN_ADJUST_DEFAULT. Значения владельца, которые могут быть указаны, ограничены идентификаторами пользователей и групп с атрибутом, указывающим, что они могут быть назначены владельцем объектов. |
| TokenPrimaryGroup | Буфер содержит структуру TOKEN_PRIMARY_GROUP, указывающую основную группу по умолчанию идентификатор безопасности для вновь созданных объектов. для задания этих сведений требуется доступ TOKEN_ADJUST_DEFAULT. Должен быть одним из идентификаторов групп, уже имеющихся в маркере. |
| TokenPrivileges | Недопустимый класс сведений. Эта информация доступна только для чтения. |
| tokenSource |
Недопустимый класс сведений. Эта информация доступна только для чтения. |
| TokenStatistics | Недопустимый класс сведений. Эта информация доступна только для чтения. |
| TokenUser | Недопустимый класс сведений. Эта информация доступна только для чтения. |
[in] TokenInformationLength
Размер в байтах структуры, переданной в буфере TokenInformation. Должно быть больше или равно минимальному значению, заданному в следующей таблице.
| Значение TokenInformationClass | Минимальное значение TokenInformationLength |
|---|---|
| TokenDefaultDacl | размер(TOKEN_DEFAULT_DACL) |
| токена |
sizeof(TOKEN_OWNER) |
| TokenPrimaryGroup | размер(TOKEN_PRIMARY_GROUP) |
Возвращаемое значение
ZwSetInformationToken возвращает STATUS_SUCCESS или соответствующее состояние ошибки. Возможные коды состояния ошибок включают следующие:
| Возвращаемый код | Описание |
|---|---|
| STATUS_ACCESS_DENIED | TokenHandle не имели требуемого доступа. |
| STATUS_ALLOTTED_SPACE_EXCEEDED | Пространство, выделенное для хранения управления доступом по умолчанию, и основной идентификатор группы недостаточно велик, чтобы принять новое значение одного из этих полей. |
| STATUS_INFO_LENGTH_MISMATCH | Значение TokenInformationLength меньше требуемого минимума. |
| STATUS_INSUFFICIENT_RESOURCES | Не удалось записать указанные сведения о безопасности владельца по умолчанию. |
| STATUS_INVALID_HANDLE | TokenHandle не является допустимым дескриптором. |
| STATUS_INVALID_INFO_CLASS | TokenInformationClass не является допустимым классом сведений о маркерах. |
| STATUS_INVALID_OWNER | Вызывающий объект не может задать указанный идентификатор владельцем (или владельцем по умолчанию) объекта. |
| STATUS_INVALID_PRIMARY_GROUP | Вызывающий объект не может задать указанный идентификатор в качестве основной группы объекта. |
| STATUS_INVALID_SID | Недействительная информация о безопасности указанного владельца по умолчанию. |
| STATUS_OBJECT_TYPE_MISMATCH | TokenHandle не был дескриптором маркера. |
Замечания
Дополнительные сведения о безопасности и управлении доступом см. в модели безопасности Windows для разработчиков драйверов и документации по этим разделам в пакете SDK для Windows.
Заметка
Если вызов функции ZwSetInformationToken происходит в пользовательском режиме, следует использовать имя NtSetInformationToken" вместо "ZwSetInformationToken".
Для вызовов драйверов в режиме ядра NtXxx и ZwXxx версии подпрограммы Windows Native System Services могут вести себя по-разному в том, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между NtXxx и ZwXxx версиями подпрограммы см. в разделе Using Nt and Zw Versions of the Native System Services Routines.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 7 |
| целевая платформа | Всеобщий |
| заголовка | ntifs.h (include Ntifs.h) |
| библиотеки |
NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |
| правил соответствия DDI |
См. также
PsDereferenceImpersonationToken
использование версий собственных системных служб и Zw