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


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

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

FreeInheritedFromArray