1 /* $Id: ac.c,v 1.9 2004/02/25 14:25:11 ekohl Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/advapi32/sec/ac.c
6 * PURPOSE: ACL/ACE functions
23 LPVOID pAclInformation
,
24 DWORD nAclInformationLength
,
25 ACL_INFORMATION_CLASS dwAclInformationClass
30 Status
= RtlQueryInformationAcl (pAcl
,
32 nAclInformationLength
,
33 dwAclInformationClass
);
34 if (!NT_SUCCESS(Status
))
36 SetLastError (RtlNtStatusToDosError (Status
));
57 Status
= RtlCreateAcl (pAcl
,
60 if (!NT_SUCCESS(Status
))
62 SetLastError (RtlNtStatusToDosError (Status
));
79 return RtlValidAcl (pAcl
);
90 LPVOID pAclInformation
,
91 DWORD nAclInformationLength
,
92 ACL_INFORMATION_CLASS dwAclInformationClass
97 Status
= RtlSetInformationAcl (pAcl
,
99 nAclInformationLength
,
100 dwAclInformationClass
);
101 if (!NT_SUCCESS(Status
))
103 SetLastError (RtlNtStatusToDosError (Status
));
118 AddAccessAllowedAce (
127 Status
= RtlAddAccessAllowedAce (pAcl
,
131 if (!NT_SUCCESS(Status
))
133 SetLastError (RtlNtStatusToDosError (Status
));
155 Status
= RtlAddAccessDeniedAce (pAcl
,
159 if (!NT_SUCCESS(Status
))
161 SetLastError (RtlNtStatusToDosError (Status
));
177 DWORD dwStartingAceIndex
,
184 Status
= RtlAddAce (pAcl
,
189 if (!NT_SUCCESS(Status
))
191 SetLastError (RtlNtStatusToDosError (Status
));
215 Status
= RtlAddAuditAccessAce (pAcl
,
221 if (!NT_SUCCESS(Status
))
223 SetLastError (RtlNtStatusToDosError (Status
));
243 Status
= RtlDeleteAce (pAcl
,
245 if (!NT_SUCCESS(Status
))
247 SetLastError (RtlNtStatusToDosError (Status
));
265 return RtlFirstFreeAce (pAcl
,
283 Status
= RtlGetAce (pAcl
,
286 if (!NT_SUCCESS(Status
))
288 SetLastError (RtlNtStatusToDosError (Status
));