GetSecurityDescriptorDacl函数检索指定安全描述符中自由访问控制列表(ACL)的指针。
BOOL GetSecurityDescriptorDacl(
PSECURITY_DESCRIPTOR 【pSecurityDescriptor】, | //安全描述符的地址 |
LPBOOL 【lpbDaclPresent】, | //存在光盘的标志地址。ACL |
PACL 【* pDacl】, | //指向ACL的指针的地址 |
LPBOOL 【lpbDaclDefaulted】 | //默认光盘的标志地址。ACL |
); |
参数
【pSecurityDescriptor】
指向包含自由ACL的SECURITY_DESCRIPTOR结构。该函数检索一个指向它的指针。
【lpbDaclPresent】
指向一个标志,该函数用于指示在指定的安全描述符中存在自由ACL。如果此参数为TRUE,则安全描述符包含自由ACL,此函数中的其余输出参数将接收有效值。如果此参数为FALSE,则安全描述符不包含任意ACL,其余的输出参数不会接收有效值。
【pDacl】
指向ACL结构的指针。如果存在自由ACL,则该函数将由【pDacl】指向的指针设置为安全描述符的自由ACL的地址。如果自由ACL不存在,则不存储任何值。
如果函数在【pDacl】指向的指针中存储NULL值,则安全描述符具有NULL自由ACL。NULL自由裁量ACL隐式允许对对象的所有访问。
【lpbDaclDefaulted】
如果安全描述符存在自由ACL,则将标记设置为SECURITY_DESCRIPTOR_CONTROL结构中的SE_DACL_DEFAULTED标志的值。如果该标志为TRUE,则自动ACL由默认机制检索;如果FALSE,用户明确指定了自由ACL。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
也可以看看
ACL, GetSecurityDescriptorControl, GetSecurityDescriptorGroup, GetSecurityDescriptorLength, GetSecurityDescriptorOwner, GetSecurityDescriptorSacl, InitializeSecurityDescriptor, IsValidSecurityDescriptor, SECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SetSecurityDescriptorDacl