Функция 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 для инициализации структуры.

[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