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


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

Подпрограмма RtlGetDaclSecurityDescriptor возвращает указатель на дискреционный ACL (DACL) для дескриптора безопасности.

Синтаксис

NTSYSAPI NTSTATUS RtlGetDaclSecurityDescriptor(
  [in]  PSECURITY_DESCRIPTOR SecurityDescriptor,
  [out] PBOOLEAN             DaclPresent,
  [out] PACL                 *Dacl,
  [out] PBOOLEAN             DaclDefaulted
);

Параметры

[in] SecurityDescriptor

Указатель на SECURITY_DESCRIPTOR , для которого требуется вернуть DACL.

[out] DaclPresent

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

[out] Dacl

Указатель на переменную, которая получает адрес DACL для дескриптора безопасности. Если дескриптор безопасности не имеет DACL, эта переменная не получает значение. Если дескриптор безопасности имеет DACL NULL , эта переменная получает значение NULL. DACL NULL неявно разрешает всем доступ к объекту.

[out] DaclDefaulted

Указатель на логическую переменную, которая получает значение флага SE_DACL_DEFAULTED в структуре SECURITY_DESCRIPTOR_CONTROL дескриптора безопасности. Если этот флаг имеет значение TRUE, daCL был получен механизмом по умолчанию. Если он имеет значение FALSE, daCL был явно указан пользователем. Это значение допустимо, только если *Dacl получает значение, отличное от NULL .

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

RtlGetDaclSecurityDescriptor возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:

Код возврата Описание
STATUS_UNKNOWN_REVISION
Уровень редакции дескриптора безопасности неизвестен или не поддерживается. Это код ошибки.

Комментарии

Значение TRUE для *DaclPresent не означает, что значение *Dacl не равно NULL. То есть значение *DaclPresent может иметь значение TRUE, а *Dacl имеет значение NULL, что означает, что dacl null действует. СПИСОК DACL NULL неявно разрешает всем доступ к объекту и не совпадает с пустым DACL. Пустой DACL не разрешает доступ к объекту.

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

Требования

Требование Значение
Минимальная версия клиента Windows Server 2003 с пакетом обновления 1 (SP1)
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR