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

标识与 pObjectName 关联的对象类型或名称的 GUID 的可选列表。 如果对象管理器仅支持一个对象类,或者没有与对象类关联的 GUID,则可能为 NULL

[in] GuidCount

pObjectClassGuids 指向的 GUID 数

[in] pAcl

对象的 ACL。

[in, optional] pfnArray

保留。 将此参数设置为 NULL

[in] pGenericMapping

通用权限与对象的特定权限的映射。

[out] pInheritArray

指向 getInheritanceSource 函数用继承信息填充的INHERITED_FROM结构的数组的指针。 调用方必须为 ACL 中的每个 ACE 的条目分配足够的内存。

返回值

如果函数成功,该函数将返回ERROR_SUCCESS。

如果函数失败,它将返回 WinError.h 中定义的非零错误代码。

注解

GetInheritanceSource 函数为INHERITED_FROM结构中返回的名称分配内存。 函数完成使用此内存后,调用程序必须通过调用 FreeInheritedFromArray 来释放它。 请注意,调用方必须为数组本身提供内存。 如果调用方分配了内存,则调用方必须在调用 FreeInheritedFromArray 后释放该内存。

此函数不处理争用条件。 如果线程在另一个线程更改对象的 安全描述符的大致时间调用此函数,则此函数可能会失败。

注意

aclapi.h 标头将 GetInheritanceSource 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 aclapi.h
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

FreeInheritedFromArray