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

Подпрограмма RtlAddAce добавляет одну или несколько записей управления доступом (ACEs) в указанный список управления доступом (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 добавляет указанные acES в этот ACL.

[in] AceRevision

Уровень редакции ACL добавляемого ACE. Требования к версии Windows приведены ниже.

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

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

[in] StartingAceIndex

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

[in] AceList

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

[in] AceListLength

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

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

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

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

Замечания

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

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

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

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

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

Требования

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

См. также

ACE

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce