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

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

Синтаксис

NTSYSAPI NTSTATUS RtlAddAce(
  [in, out] PACL  Acl,
  [in]      ULONG AceRevision,
  [in]      ULONG StartingAceIndex,
  [in]      PVOID AceList,
  [in]      ULONG AceListLength
);

Параметры

[in, out] Acl

Указатель на список ACL, который требуется изменить. RtlAddAce добавляет указанные ACE в этот список ACL.

[in] AceRevision

Уровень редакции ACL добавляемого элемента управления. Ниже приведены запросы версий Windows.

Значение Значение
ACL_REVISION Уровень редакции, допустимый во всех версиях Windows.
ACL_REVISION_DS Допустимый уровень редакции, начиная с Windows 2000.

AceRevision должен быть ACL_REVISION_DS, если ACL в ACL содержит объект ACE.

[in] StartingAceIndex

Указывает позицию в списке ACL ACL для добавления новых ACE. Значение , равное нулю, вставляет ACE в начало списка. Значение MAXULONG добавляет ACE в конец списка.

[in] AceList

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

[in] AceListLength

Размер входного буфера в байтах, на который указывает параметр AceList .

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

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

Код возврата Описание
STATUS_BUFFER_TOO_SMALL Новые ACE не помещаются в список ACL. Требуется больший буфер ACL. STATUS_BUFFER_TOO_SMALL — это код ошибки.
STATUS_INVALID_PARAMETER Одно из значений параметра было недопустимым. Возможные причины включают в себя то, что указанный список ACL является недопустимым или указанная редакция неизвестна, несовместима с редакциями в списке ACE или несовместима с редакцией ACL. STATUS_INVALID_PARAMETER — это код ошибки.

Комментарии

Сведения о вычислении размера ACL см. в разделе Примечания справочной записи для RtlCreateAcl.

Чтобы получить указатель на ACE в ACL, используйте RtlGetAce.

Чтобы удалить ACE из ACL, используйте RtlDeleteAce.

Чтобы добавить доступ к ACE в ACL, используйте RtlAddAccessAllowedAce.

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

Требования

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

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

ACE

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce