Функция 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 |