Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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 |