Поделиться через


Функция SeSetSecurityDescriptorInfo (ntifs.h)

Программа SeSetSecurityDescriptorInfo задает дескриптор безопасности объекта.

Синтаксис

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

Параметры

[in, optional] Object

Указатель на объект, дескриптор безопасности которого должен быть задан. Используется для обновления сведений о квоте безопасности.

[in] SecurityInformation

Указатель на битовую маску, указывающую, какие сведения безопасности должны применяться к объекту. Может быть сочетанием одного или нескольких следующих значений.

Ценность Значение
DACL_SECURITY_INFORMATION Указывает, что настраивается список управления доступом (DACL) объекта. Требуется WRITE_DAC доступ.
GROUP_SECURITY_INFORMATION Указывает идентификатор основной группы объекта. Требуется WRITE_OWNER доступ.
OWNER_SECURITY_INFORMATION Указывает идентификатор владельца объекта. Требуется WRITE_OWNER доступ.
SACL_SECURITY_INFORMATION Указывает, что устанавливается системный ACL (SACL) объекта. Требуется ACCESS_SYSTEM_SECURITY доступ.

ModificationDescriptor

Дескриптор безопасности ввода, применяемый к объекту. Ожидается, что вызывающий объект этой подпрограммы будет проверять и записывать переданный дескриптор безопасности перед вызовом SeSetSecurityDescriptorInfoи освободить его после этого.

[in, out] ObjectsSecurityDescriptor

Указатель на указатель на дескриптор безопасности объекта. Дескриптор безопасности должен находиться в автономном формате. Вызывающий объект отвечает за освобождение этой структуры, если она больше не нужна.

[in] PoolType

Указывает тип пула, используемый при выделении нового дескриптора безопасности, который может быть одним из следующих вариантов:

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

Как правило, вызывающий объект указывает PagedPoolили другой NonPagedPool, если буфер будет обращаться в IRQL >= DISPATCH_LEVEL или в произвольном контексте потока.

NonPagedPoolMustSucceed и NonPagedPoolCaolCacheAlignedMustS типы пулов устарели и больше не должны использоваться.

[in] GenericMapping

Указатель на структуру GENERIC_MAPPING, которая указывает сопоставление универсальных типов с определенными и стандартными типами доступа для доступа к объекту. Ожидается, что эта структура сопоставления будет безопасной для доступа (т. е. записана при необходимости) перед передачей этой подпрограмме.

Возвращаемое значение

Возвращаемый код Описание
STATUS_SUCCESS Дескриптор безопасности объекта был успешно изменен.
STATUS_BAD_DESCRIPTOR_FORMAT Дескриптор безопасности предоставленного объекта не был в автономном формате.
STATUS_NO_SECURITY_ON_OBJECT У объекта нет дескриптора безопасности.

Замечания

SeSetSecurityDescriptorInfo изменяет существующий дескриптор безопасности объекта. Если у объекта нет дескриптора безопасности, вызов SeSetSecurityDescriptorInfo завершится ошибкой.

Чтобы указать, поддерживает ли объект автоматическое наследование записей управления доступом (ACE), используйте SeSetSecurityDescriptorInfoEx.

Дескриптор безопасности может находиться в абсолютной или относительной форме. В самостоятельной форме все члены структуры находятся в памяти. В абсолютной форме структура содержит только указатели на элементы.

Дополнительные сведения о безопасности и управлении доступом см. в модели безопасности Windows для разработчиков драйверов и документации по этим разделам в пакете SDK для Windows.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

См. также

ACE

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx