setSecurityDescriptorSacl 函数 (securitybaseapi.h)

SetSecurityDescriptorSacl 函数 (SACL) 设置系统访问控制列表中的信息。 如果 安全描述符中已存在 SACL,则将其替换。

语法

BOOL SetSecurityDescriptorSacl(
  [in, out]      PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in]           BOOL                 bSaclPresent,
  [in, optional] PACL                 pSacl,
  [in]           BOOL                 bSaclDefaulted
);

参数

[in, out] pSecurityDescriptor

指向函数向其添加 SACL 的 SECURITY_DESCRIPTOR 结构的指针。 此安全描述符必须采用绝对格式,这意味着其成员必须是指向其他结构的指针,而不是指向连续数据的偏移量。

[in] bSaclPresent

指示安全描述符中是否存在 SACL。 如果此参数为 TRUE,则函数在 SECURITY_DESCRIPTOR_CONTROL 结构中设置 SE_SACL_PRESENT 标志,并使用 pSaclbSaclDefaulted 参数中的值。 如果为 FALSE,则函数不会设置SE_SACL_PRESENT标志,并忽略 pSaclbSaclDefaulted

[in, optional] pSacl

指向 ACL 结构的指针,该结构指定安全描述符的 SACL。 如果此参数为 NULL,则向安全描述符分配 NULL SACL。 SACL 由安全描述符引用,而不是复制到安全描述符中。

[in] bSaclDefaulted

指示 SACL 的源。 如果此标志为 TRUE,则表示某个默认机制已检索 SACL。 如果为 FALSE,则表示 SACL 已由用户显式指定。 函数将此值存储在 SECURITY_DESCRIPTOR_CONTROL 结构的 SE_SACL_DEFAULTED 标志中。 如果未指定此参数,则会清除 SE_SACL_DEFAULTED 标志。

返回值

如果函数成功,则函数返回非零值。

如果函数失败,则返回零。 要获得更多的错误信息,请调用 GetLastError。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 securitybaseapi.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

ACL

GetSecurityDescriptorSacl

InitializeSecurityDescriptor

IsValidSecurityDescriptor

低级别访问控制

低级别访问控制函数

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL

SetSecurityDescriptorDacl

SetSecurityDescriptorGroup

SetSecurityDescriptorOwner