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


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

Указатель на имя объекта, использующего проверяемый список 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 [только классические приложения]
целевая платформа Виндоус
заголовка aclapi.h
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

FreeInheritedFromArray