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


Функция 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, эта переменная не получает значение. Если дескриптор безопасности содержит NULL DACL, эта переменная получает NULL. NULL DACL неявно разрешает доступ ко всему объекту.

[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, а *DaclNULL, то есть ЗНАЧЕНИЕ NULL DACL действует. NULL DACL неявно разрешает доступ ко всему объекту и не совпадает с пустым DACL. Пустой DACL не разрешает доступ к объекту.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Server 2003 с пакетом обновления 1 (SP1)
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR