Функция FltSetSecurityObject (fltkernel.h)
FltSetSecurityObject задает состояние безопасности объекта.
Синтаксис
NTSTATUS FLTAPI FltSetSecurityObject(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] SECURITY_INFORMATION SecurityInformation,
[in] PSECURITY_DESCRIPTOR SecurityDescriptor
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.
[in] FileObject
Указатель на файловый объект для объекта, состояние безопасности которого необходимо задать. Вызывающий объект должен иметь доступ, указанный в столбце Значение таблицы, показанной в описании параметра SecurityInformation . Этот параметр является обязательным и не может иметь значение NULL.
[in] SecurityInformation
SECURITY_INFORMATION значение, указывающее сведения, которые необходимо задать как сочетание одного или нескольких из следующих значений.
Значение | Значение |
---|---|
OWNER_SECURITY_INFORMATION | Указывает, что необходимо задать идентификатор владельца объекта. Требуется доступ WRITE_OWNER. |
GROUP_SECURITY_INFORMATION | Указывает, что основной идентификатор группы объекта должен быть задан. Требуется доступ WRITE_OWNER. |
DACL_SECURITY_INFORMATION | Указывает, что необходимо задать список управления доступом (DACL) для объекта. Требуется доступ WRITE_DAC. |
SACL_SECURITY_INFORMATION | Указывает, что системный ACL (SACL) объекта должен быть задан. Требуется доступ ACCESS_SYSTEM_SECURITY. |
[in] SecurityDescriptor
Указатель на дескриптор безопасности, который необходимо задать для объекта .
Возвращаемое значение
FltSetSecurityObject возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:
Код возврата | Описание |
---|---|
STATUS_ACCESS_DENIED | У вызывающей стороны не было необходимого доступа. Это код ошибки. |
STATUS_ACCESS_VIOLATION | SecurityDescriptor — это указатель NULL . Это код ошибки. |
STATUS_INSUFFICIENT_RESOURCES | Не удалось записать дескриптор безопасности объекта. Это код ошибки. |
STATUS_INVALID_ACL | Дескриптор безопасности объекта содержал недопустимый ACL. Это код ошибки. |
STATUS_INVALID_SECURITY_DESCR | SecurityDescriptor не указывает на допустимый дескриптор безопасности. Это код ошибки. |
STATUS_INVALID_SID | Дескриптор безопасности объекта содержал недопустимый идентификатор безопасности. Это код ошибки. |
STATUS_UNKNOWN_REVISION | Уровень редакции дескриптора безопасности объекта неизвестен или не поддерживается. Это код ошибки. |
STATUS_NOT_IMPLEMENTED | Подпрограмма FltSetSecurityObject присутствует, но не поддерживается в среде операционной системы, в которой она была вызвана. |
Комментарии
Подпрограмма FltSetSecurityObject присутствует и поддерживается начиная с Windows Vista. В Windows 2000, Windows XP и Server 2003 с пакетом обновления 1 (SP1) подпрограмма присутствует, но не поддерживается и возвращает STATUS_NOT_IMPLEMENTED при вызове в любой из этих сред.
Дескриптор безопасности может иметь абсолютную или самостоятельную форму. В относительной форме все члены структуры расположены в памяти непрерывно. В абсолютной форме структура содержит только указатели на члены. Дополнительные сведения см. в разделе Абсолютные и Self-Relative дескрипторы безопасности.
Дополнительные сведения о безопасности и управлении доступом см. в документации по этим темам в windows SDK.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |