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


Функция AddAccessDeniedAceEx (securitybaseapi.h)

Функция AddAccessDeniedAceEx добавляет запись управления доступом с отказом в доступе (ACE) в конец списка управления доступом на уровне пользователей (DACL).

Синтаксис

BOOL AddAccessDeniedAceEx(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD AccessMask,
  [in]      PSID  pSid
);

Параметры

[in, out] pAcl

Указатель на DACL. Функция AddAccessDeniedAceEx добавляет ACE с запретом в доступе в конец этого DACL. ACE имеет форму структуры ACCESS_DENIED_ACE .

[in] dwAceRevision

Указывает уровень редакции изменяемого списка DACL. Это значение может быть ACL_REVISION или ACL_REVISION_DS. Используйте ACL_REVISION_DS, если DACL содержит ACE для конкретных объектов.

[in] AceFlags

Набор битовых флагов, управляющих наследованием ACE. Функция задает эти флаги в элементе AceFlagsACE_HEADER структуры нового ACE. Этот параметр может быть сочетанием следующих значений.

Значение Значение
CONTAINER_INHERIT_ACE
ACE наследуется объектами контейнера.
INHERIT_ONLY_ACE
ACE не применяется к объекту, которому назначен список управления доступом ( ACL), но он может быть унаследован дочерними объектами.
INHERITED_ACE
Указывает наследуемый элемент ACE. Этот флаг позволяет операциям, изменяющим безопасность в дереве объектов, изменять унаследованные ACE, при этом не изменяя ACE, которые были непосредственно применены к объекту.
NO_PROPAGATE_INHERIT_ACE
Биты OBJECT_INHERIT_ACE и CONTAINER_INHERIT_ACE не распространяются на унаследованный ACE.
OBJECT_INHERIT_ACE
ACE наследуется неконтейнерными объектами.

[in] AccessMask

Набор битовых флагов, использующих формат ACCESS_MASK для указания прав доступа, которые новый ACE запрещает указанному идентификатору безопасности (SID).

[in] pSid

Указатель на идентификатор безопасности, который идентифицирует пользователя, группу или сеанс входа , к которым новый ACE запрещает доступ.

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

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Ниже приведены возможные значения ошибок.

Код возврата Описание
ERROR_ALLOTTED_SPACE_EXCEEDED
Новый ACE не помещается в список ACL. Требуется больший буфер ACL.
ERROR_INVALID_ACL
Указанный список ACL неправильно сформирован.
ERROR_INVALID_FLAGS
Недопустимый параметр AceFlags .
ERROR_INVALID_SID
Указанный идентификатор безопасности не является структурно допустимым.
ERROR_REVISION_MISMATCH
Указанная редакция неизвестна или несовместима с редакцией ACL.
ERROR_SUCCESS
ACE успешно добавлен.

Комментарии

Несмотря на то, что функция AddAccessDeniedAceEx добавляет новый ACE в конец DACL, ACE с запретом в доступе должны отображаться в начале DACL. Вызывающий объект должен убедиться, что ACE добавлены в DACL в правильном порядке. Дополнительные сведения см. в разделе Порядок ACE в DACL.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header securitybaseapi.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

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

ACCESS_DENIED_ACE

ACCESS_MASK

ACE_HEADER

AddAccessAllowedAceEx

AddAuditAccessAceEx

Низкоуровневые контроль доступа

Низкоуровневые функции контроль доступа