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


Функция GetInheritanceSourceA (aclapi.h)

Эта версия этой функции не поддерживается. Поддерживается расширенная версия этой функции GetInheritanceSourceW.

Синтаксис

DWORD GetInheritanceSourceA(
  [in]           LPSTR                 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_FROMA      pInheritArray
);

Параметры

[in] pObjectName

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

[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