GetInheritanceSourceW 函数 (aclapi.h)

GetInheritanceSource 函数返回有关 访问控制列表(ACL)中继承的 访问控制项源的信息(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 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 [仅限桌面应用]
目标平台 窗户
标头 aclapi.h
Advapi32.lib
DLL Advapi32.dll

另请参阅

FreeInheritedFromArray