SetSecurityDescriptorSacl功能在系统访问控制列表(ACL)中设置信息。如果安全描述符中已经存在系统ACL,则会被替换。
BOOL SetSecurityDescriptorSacl(
PSECURITY_DESCRIPTOR 【pSecurityDescriptor】, | //安全描述符的地址 |
BOOL 【bSaclPresent】, | //存在系统ACL的标志 |
PACL 【pSacl】, | //系统ACL的地址 |
BOOL 【bSaclDefaulted】 | //默认系统ACL的标志 |
); |
参数
【pSecurityDescriptor】
指向功能添加系统ACL的SECURITY_DESCRIPTOR结构。此安全描述符必须为绝对格式,这意味着其成员必须是指向其他结构的指针,而不是对连续数据的偏移量。
【bSaclPresent】
指定在安全描述符中指示系统ACL的存在的标志。如果此参数为TRUE,则该函数将在SECURITY_DESCRIPTOR_CONTROL结构中设置SE_SACL_PRESENT标志,并使用【pSacl】和【bSaclDefaulted】参数中的值。如果为FALSE,则该函数不设置SE_SACL_PRESENT标志,【pSacl】和【bSaclDefaulted】将被忽略。
【pSacl】
指向ACL结构,指定安全描述符的系统ACL。如果此参数为NULL,则将一个NULL系统ACL分配给安全描述符。系统ACL被引用,不复制到安全描述符中。
【bSaclDefaulted】
指定表示系统ACL源的标志。如果此标志为TRUE,则系统ACL已被某些默认机制检索。如果为FALSE,系统ACL已由用户明确指定。该函数将此值存储在SECURITY_DESCRIPTOR_CONTROL结构的SE_SACL_DEFAULTED标志中。如果未指定此参数,则清除SE_SACL_DEFAULTED标志。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
也可以看看
ACL, GetSecurityDescriptorSacl, InitializeSecurityDescriptor, IsValidSecurityDescriptor, SECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SetSecurityDescriptorDacl, SetSecurityDescriptorGroup, SetSecurityDescriptorOwner