Функция NtSetSecurityObject (ntifs.h)
Подпрограмма NtSetSecurityObject задает состояние безопасности объекта.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetSecurityObject(
[in] HANDLE Handle,
[in] SECURITY_INFORMATION SecurityInformation,
[in] PSECURITY_DESCRIPTOR SecurityDescriptor
);
Параметры
[in] Handle
Дескриптор объекта, состояние безопасности которого необходимо задать. Этот дескриптор должен иметь доступ, указанный в столбце Значение таблицы, показанной в описании параметра SecurityInformation .
[in] SecurityInformation
SECURITY_INFORMATION значение, указывающее сведения, которые необходимо задать как сочетание одного или нескольких из следующих значений.
Значение | Значение |
---|---|
OWNER_SECURITY_INFORMATION | Указывает, что необходимо задать идентификатор владельца объекта. Требуется доступ WRITE_OWNER. |
GROUP_SECURITY_INFORMATION | Указывает, что основной идентификатор группы объекта должен быть задан. Требуется доступ WRITE_OWNER. |
SACL_SECURITY_INFORMATION | Указывает, что системный ACL (SACL) объекта должен быть задан. Требуется доступ ACCESS_SYSTEM_SECURITY. |
DACL_SECURITY_INFORMATION | Указывает, что необходимо задать список управления доступом (DACL) для объекта. Требуется доступ WRITE_DAC. |
[in] SecurityDescriptor
Указатель на дескриптор безопасности, который необходимо задать для объекта .
Возвращаемое значение
NtSetSecurityObject возвращает STATUS_SUCCESS или соответствующее состояние ошибки. Возможные коды состояния ошибок:
Код возврата | Описание |
---|---|
STATUS_ACCESS_DENIED | У вызывающей стороны не было необходимого доступа. |
STATUS_ACCESS_VIOLATION | SecurityDescriptor — это указатель NULL . |
STATUS_INSUFFICIENT_RESOURCES | Не удалось записать дескриптор безопасности объекта. |
STATUS_INVALID_ACL | Дескриптор безопасности объекта содержал недопустимый ACL. |
STATUS_INVALID_HANDLE | Дескриптор не является допустимым дескриптором. |
STATUS_INVALID_SECURITY_DESCR | SecurityDescriptor не указывает на допустимый дескриптор безопасности. |
STATUS_INVALID_SID | Дескриптор безопасности объекта содержал недопустимый идентификатор безопасности. |
STATUS_OBJECT_TYPE_MISMATCH | Дескриптор не является дескриптором ожидаемого типа. |
STATUS_UNKNOWN_REVISION | Уровень редакции дескриптора безопасности объекта неизвестен или не поддерживается. |
Комментарии
Дескриптор безопасности может иметь абсолютную или самостоятельную форму. В относительной форме все члены структуры расположены в памяти непрерывно. В абсолютной форме структура содержит только указатели на члены. Дополнительные сведения см. в разделе Абсолютные и Self-Relative дескрипторы безопасности.
Дополнительные сведения о безопасности и управлении доступом см. в статье Модель безопасности Windows для разработчиков драйверов и в документации по этим темам в windows SDK.
Минифильтры должны использовать FltSetSecurityObject вместо NtSetSecurityObject.
Вызывающие объекты NtSetSecurityObject должны выполняться по адресу IRQL = PASSIVE_LEVEL и с включенными специальными APC ядра.
Примечание
Если вызов функции NtSetSecurityObject происходит в пользовательском режиме, следует использовать имя NtSetSecurityObject вместо ZwSetSecurityObject.
Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
Правила соответствия DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
См. также раздел
Использование версий Nt и Zw собственных процедур системных служб
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по