BOOL GetSecurityDescriptorDacl(SecurityDescriptor, lpfDaclPresent, Dacl, lpfDaclDefaulted) | |||
PSECURITY_DESCRIPTOR SecurityDescriptor; | |||
LPBOOL lpfDaclPresent; | |||
PACL *Dacl; | |||
LPBOOL lpfDaclDefaulted; |
The GetSecurityDescriptorDacl function retrieves a security descriptor's discretionary access control list (ACL) information.
SecurityDescriptor
Pointer to a SECURITY_DESCRIPTOR data structure whose discretionary ACL information the function will retrieve.
The SECURITY_DESCRIPTOR data structure has the following form:
typedef PVOID PSECURITY_DESCRIPTOR;
lpfDaclPresent
Pointer to a Boolean variable that the function will set to indicate the presence of a discretionary ACL in the security descriptor pointed to by SecurityDescriptor. If set to TRUE, the security descriptor does contain a discretionary ACL, and the remaining output parameters will receive valid values. If set to FALSE, the security descriptor does not contain a discretionary ACL, and the remaining output parameters will not receive valid values.
Dacl
Pointer to a pointer to an ACL data structure. If the value stored into the variable pointed to by lpfDaclPresent is TRUE, the function sets the pointer pointed to by Dacl to the address of the security descriptor's discretionary ACL. If the value stored into the variable pointed to by lpfDaclPresent is FALSE, no value is stored.
If the function stores a null value into the pointer pointed to by Dacl, then the security descriptor has a null discretionary ACL.
lpfDaclDefaulted
Pointer to a Boolean variable. If the value stored into the variable pointed to by lpfDaclPresent is TRUE, the function sets the variable pointed to by lpfDaclDefaulted to the value of the security descriptor's DaclDefaulted control flag. If the value stored into the variable pointed to by lpfDaclPresent is FALSE, no value is set.
The return value is TRUE if the function was successful, or FALSE if an error occurred. Use the GetLastError function to obtain extended error information.
GetSecurityDescriptorGroup, GetSecurityDescriptorControl, GetSecurityDescriptorLength, GetSecurityDescriptorOwner, GetSecurityDescriptorSacl, InitializeSecurityDescriptor, IsValidSecurityDescriptor, SetSecurityDescriptorDacl, SetSecurityDescriptorGroup, SetSecurityDescriptorOwner, SetSecurityDescriptorSacl