Функция GetInheritanceSourceW (aclapi.h)
Функция GetInheritanceSource возвращает сведения об источнике унаследованных записей управления доступом (ACE) в списке управления доступом (ACL).
Синтаксис
DWORD GetInheritanceSourceW(
[in] LPWSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in] BOOL Container,
[in, optional] GUID **pObjectClassGuids,
[in] DWORD GuidCount,
[in] PACL pAcl,
[in, optional] PFN_OBJECT_MGR_FUNCTS pfnArray,
[in] PGENERIC_MAPPING pGenericMapping,
[out] PINHERITED_FROMW pInheritArray
);
Параметры
[in] pObjectName
Указатель на имя объекта, который использует список ACL для проверки.
[in] ObjectType
Тип объекта, указанный pObjectName. Возможные значения: SE_FILE_OBJECT, SE_REGISTRY_KEY, SE_DS_OBJECT и SE_DS_OBJECT_ALL.
[in] SecurityInfo
Тип ACL, используемый с объектом . Возможные значения: DACL_SECURITY_INFORMATION или SACL_SECURITY_INFORMATION.
[in] Container
Значение TRUE , если объект является объектом контейнера, или false , если объект является конечным объектом. Обратите внимание, что единственным конечным объектом является SE_FILE_OBJECT.
[in, optional] pObjectClassGuids
Необязательный список идентификаторов GUID, определяющих типы объектов или имена, связанные с pObjectName. Это значение может иметь значение NULL , если диспетчер объектов поддерживает только один класс объектов или не имеет guid, связанного с классом объекта.
[in] GuidCount
Число идентификаторов GUID, на которые указывает pObjectClassGuids.
[in] pAcl
Список ACL для объекта .
[in, optional] pfnArray
Зарезервировано. Задайте для этого параметра значение NULL.
[in] pGenericMapping
Сопоставление универсальных прав с конкретными правами для объекта.
[out] pInheritArray
Указатель на массив INHERITED_FROM структур, которые функция GetInheritanceSource заполняет данными наследования. Вызывающий объект должен выделить достаточно памяти для записи для каждого ACE в ACL.
Возвращаемое значение
Если функция завершается успешно, функция возвращает ERROR_SUCCESS.
Если функция завершается сбоем, она возвращает ненулевой код ошибки, определенный в WinError.h.
Комментарии
Функция GetInheritanceSource выделяет память для имен, возвращаемых в структуре INHERITED_FROM . Когда функция завершит использование этой памяти, вызывающая программа должна освободить ее, вызвав Метод FreeInheritedFromArray. Обратите внимание, что вызывающий объект должен предоставлять память для самого массива. Если вызывающий объект выделил память, вызывающий объект должен освободить ее после вызова FreeInheritedFromArray.
Эта функция не обрабатывает состояния гонки. Если поток вызывает эту функцию в приблизительное время, когда другой поток изменяет дескриптор безопасности объекта, эта функция может завершиться ошибкой.
Примечание
Заголовок aclapi.h определяет GetInheritanceSource в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | aclapi.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |