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


Функция RtlSetDaclSecurityDescriptor (wdm.h)

Подпрограмма RtlSetDaclSecurityDescriptor задает сведения DACL дескриптора безопасности абсолютного формата или если в дескрипторе безопасности уже присутствует DACL, он заменен.

Синтаксис

NTSYSAPI NTSTATUS RtlSetDaclSecurityDescriptor(
  [in, out]      PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]           BOOLEAN              DaclPresent,
  [in, optional] PACL                 Dacl,
  [in, optional] BOOLEAN              DaclDefaulted
);

Параметры

[in, out] SecurityDescriptor

Указатель на структуру SECURITY_DESCRIPTOR . Эта структура представляет собой дескриптор безопасности, к которому применяется DACL.

[in] DaclPresent

Указывает, присутствует ли daCL в дескрипторе безопасности. Если этот параметр имеет значение FALSE, RtlSetDaclSecurityDescriptor задает флаг элемента управления SE_DACL_PRESENT в дескрипторе безопасности значение FALSE. В этом случае остальные необязательные параметры (Dacl и DaclDefaulted) игнорируются. Если daclPresent имеет значение TRUE, флаг SE_DACL_PRESENT в дескрипторе безопасности имеет значение TRUE , а остальные необязательные параметры не игнорируются. Дополнительные сведения о флаге SE_DACL_PRESENT см. в SECURITY_DESCRIPTOR_CONTROL.

[in, optional] Dacl

Указатель на DACL для дескриптора безопасности. Если этот параметр имеет значение NULL, указатель DACL в дескрипторе безопасности имеет значение NULL. Указатель DACL NULL безусловно предоставляет всем доступ к объекту и не совпадает с пустым DACL. Пустой DACL запрещает доступ ко всему объекту. Если Dacl не имеет значения NULL, структура ACL , предоставляемая вызывающим оператором, ссылается, но не копируется в, дескриптор безопасности. Вызывающий объект может выделить структуру ACL из страницной системной памяти и вызвать подпрограмму RtlCreateAcl для инициализации структуры.

ПАРАМЕТР WARNING❗ ПАРАМЕТР NULL DACL разрешает неограниченный доступ к объекту и, следовательно, следует использовать только в стратегических сценариях, когда оценка безопасности подтвердила, что это приемлемый результат. Рекомендуется использовать пустой DACL, который по умолчанию по умолчанию запрещается всем доступом.

[in, optional] DaclDefaulted

Предоставляется ли DACL определенным механизмом по умолчанию или явно указан вызывающим методом. Если этот параметр имеет значение TRUE, daCL был предоставлен механизмом по умолчанию. Если DaclDefaulted имеет значение FALSE, вызывающий объект явно указал DACL. RtlSetDaclSecurityDescriptor копирует значение, указанное для этого параметра, в флаг элемента управления SE_DACL_DEFAULTED в дескрипторе безопасности. Дополнительные сведения о флаге SE_DACL_DEFAULTED см. в SECURITY_DESCRIPTOR_CONTROL.

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

RtlSetDaclSecurityDescriptor может возвращать одно из следующих значений состояния.

Код возврата Описание
STATUS_SUCCESS
Вызов завершился успешно.
STATUS_UNKNOWN_REVISION
Редакция дескриптора безопасности неизвестна.
STATUS_INVALID_SECURITY_DESCR
Дескриптор безопасности не является абсолютным дескриптором безопасности.

Требования

Требование Ценность
Минимально поддерживаемый клиент Доступно начиная с Windows 2000.
целевая платформа универсальный
Заголовок wdm.h (включите Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe (режим ядра); Ntdll.dll (режим пользователя)
IRQL PASSIVE_LEVEL

См. также

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL