lookupSecurityDescriptorPartsA 函数 (aclapi.h)

LookupSecurityDescriptorParts 函数从自相对安全描述符中检索安全信息。

语法

DWORD LookupSecurityDescriptorPartsA(
  [out, optional] PTRUSTEE_A           *ppOwner,
  [out, optional] PTRUSTEE_A           *ppGroup,
  [out, optional] PULONG               pcCountOfAccessEntries,
  [out, optional] PEXPLICIT_ACCESS_A   *ppListOfAccessEntries,
  [out, optional] PULONG               pcCountOfAuditEntries,
  [out, optional] PEXPLICIT_ACCESS_A   *ppListOfAuditEntries,
  [in]            PSECURITY_DESCRIPTOR pSD
);

参数

[out, optional] ppOwner

指向接收指向 TRUSTEE 结构的指针的变量的指针。 函数在 pSD 安全描述符中查找与所有者安全标识符关联的名称 (SID) ,并返回指向 TRUSTEE 结构的 ptstrName 成员中的名称的指针。 函数将 TrusteeForm 成员设置为 TRUSTEE_IS_NAME。

如果对所有者的名称不感兴趣,此参数可以为 NULL

[out, optional] ppGroup

指向接收指向 TRUSTEE 结构的指针的变量的指针。 函数查找与安全描述符的主组 SID 关联的名称,并返回指向 TRUSTEE 结构的 ptstrName 成员中的名称的指针。 函数将 TrusteeForm 成员设置为 TRUSTEE_IS_NAME。

如果对组名称不感兴趣,此参数可以为 NULL

[out, optional] pcCountOfAccessEntries

指向 ULONG 的指针,该 ULONG 接收 pListOfAccessEntries 数组中返回的EXPLICIT_ACCESS结构数。 仅当 pListOfAccessEntries 参数也为 NULL 时,此参数才能为 NULL

[out, optional] ppListOfAccessEntries

指向变量的指针,该变量接收指向EXPLICIT_ACCESS结构数组的指针,这些结构描述安全描述符 (DACL) ) 自由访问控制列表中的访问控制 (ACE。 这些EXPLICIT_ACCESS结构中的 TRUSTEE 结构使用TRUSTEE_IS_NAME形式。 有关 EXPLICIT_ACCESS 结构数组如何描述 访问控制列表中的 ACE (ACL) 的说明,请参阅 GetExplicitEntriesFromAcl 函数。 如果此参数为 NULL,则 cCountOfAccessEntries 参数也必须为 NULL

[out, optional] pcCountOfAuditEntries

指向 ULONG 的指针,该 ULONG 接收 pListOfAuditEntries 数组中返回的EXPLICIT_ACCESS结构数。 仅当 pListOfAuditEntries 参数也为 NULL 时,此参数才能为 NULL

[out, optional] ppListOfAuditEntries

指向变量的指针,该变量接收指向 EXPLICIT_ACCESS 结构数组的指针,这些结构描述 系统访问控制列表中的 ACE (SACL) 安全描述符。 这些EXPLICIT_ACCESS结构中的 TRUSTEE 结构使用TRUSTEE_IS_NAME形式。 如果此参数为 NULL,则 cCountOfAuditEntries 参数也必须为 NULL

[in] pSD

指向函数从中检索安全信息的现有 自相对安全描述符 的指针。

返回值

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

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

注解

LookupSecurityDescriptorParts 函数检索安全描述符的所有者和主组的名称。 此函数还返回 DACL 中 ACE 的说明和安全描述符的 SACL 中的审核控制条目。

如果对信息不感兴趣, pSD 以外的参数可以为 NULL 。 如果不需要有关 DACL 的信息, pListOfAccessEntriescCountOfAuditEntries 都必须为 NULL。 如果不需要有关 SACL 的信息, pListOfAuditEntriescCountOfAuditEntries 都必须为 NULL。 同样,如果确实需要 DACL 或 SACL 信息,则两个相应的参数不得为 NULL

使用完 pOwner、pGrouppListOfAccessEntriespListOfAuditEntries 参数返回的任何缓冲区后,通过调用 LocalFree 函数释放它们。

LookupSecurityDescriptorParts 函数适用于对其自己的对象实现或公开安全性的受信任服务器。 函数适用于适合序列化为流和存储到磁盘的自相对安全描述符,这是受信任的服务器可能需要的。

注意

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

要求

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

另请参阅

Ace

ACL

客户端/服务器访问控制函数

客户端/服务器访问控制概述

EXPLICIT_ACCESS

GetExplicitEntriesFromAcl

LocalFree

SECURITY_DESCRIPTOR

SID

受托 人