Функция 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 присутствует и поддерживается начиная с Windows Vista. В Windows 2000, Windows XP и Server 2003 с пакетом обновления 1 (SP1) подпрограмма присутствует, но не поддерживается, и возвращает STATUS_NOT_IMPLEMENTED при вызове в любой из этих сред.
Дескриптор безопасности может находиться в абсолютной или относительной форме. В самостоятельной форме все члены структуры находятся в памяти. В абсолютной форме структура содержит только указатели на элементы. Дополнительные сведения см. в абсолютных и Self-Relative дескрипторов безопасности.
Дополнительные сведения о безопасности и управлении доступом см. в документации по этим разделам в пакете SDK для Windows.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки |
FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |