1 /* $Id: ac.c,v 1.3 2002/09/07 15:12:22 chorns 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
18 LPVOID pAclInformation
,
19 DWORD nAclInformationLength
,
20 ACL_INFORMATION_CLASS dwAclInformationClass
25 Status
= RtlQueryInformationAcl (pAcl
,
27 nAclInformationLength
,
28 dwAclInformationClass
);
29 if (!NT_SUCCESS(Status
))
31 SetLastError (RtlNtStatusToDosError (Status
));
42 GetAuditedPermissionsFromAclA (
44 IN PTRUSTEE_A pTrustee
,
45 OUT PACCESS_MASK pSuccessfulAuditedRights
,
46 OUT PACCESS_MASK pFailedAuditRights
49 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
56 GetAuditedPermissionsFromAclW (
58 IN PTRUSTEE_W pTrustee
,
59 OUT PACCESS_MASK pSuccessfulAuditedRights
,
60 OUT PACCESS_MASK pFailedAuditRights
63 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
70 GetEffectiveRightsFromAclA (
72 IN PTRUSTEE_A pTrustee
,
73 OUT PACCESS_MASK pAccessRights
76 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
83 GetEffectiveRightsFromAclW (
85 IN PTRUSTEE_W pTrustee
,
86 OUT PACCESS_MASK pAccessRights
89 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
96 GetExplicitEntriesFromAclA (
98 OUT PULONG pcCountOfExplicitEntries
,
99 OUT PEXPLICIT_ACCESS_A
* pListOfExplicitEntries
102 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
109 GetExplicitEntriesFromAclW (
111 OUT PULONG pcCountOfExplicitEntries
,
112 OUT PEXPLICIT_ACCESS_W
* pListOfExplicitEntries
115 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
131 Status
= RtlCreateAcl (pAcl
,
134 if (!NT_SUCCESS(Status
))
136 SetLastError (RtlNtStatusToDosError (Status
));
150 return RtlValidAcl (pAcl
);
158 LPVOID pAclInformation
,
159 DWORD nAclInformationLength
,
160 ACL_INFORMATION_CLASS dwAclInformationClass
165 Status
= RtlSetInformationAcl (pAcl
,
167 nAclInformationLength
,
168 dwAclInformationClass
);
169 if (!NT_SUCCESS(Status
))
171 SetLastError (RtlNtStatusToDosError (Status
));
183 IN ULONG cCountOfExplicitEntries
,
184 IN PEXPLICIT_ACCESS_A pListOfExplicitEntries
,
189 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
197 IN ULONG cCountOfExplicitEntries
,
198 IN PEXPLICIT_ACCESS_W pListOfExplicitEntries
,
203 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
214 AddAccessAllowedAce (
223 Status
= RtlAddAccessAllowedAce (pAcl
,
227 if (!NT_SUCCESS(Status
))
229 SetLastError (RtlNtStatusToDosError (Status
));
248 Status
= RtlAddAccessDeniedAce (pAcl
,
252 if (!NT_SUCCESS(Status
))
254 SetLastError (RtlNtStatusToDosError (Status
));
267 DWORD dwStartingAceIndex
,
274 Status
= RtlAddAce (pAcl
,
279 if (!NT_SUCCESS(Status
))
281 SetLastError (RtlNtStatusToDosError (Status
));
296 WINBOOL bAuditSuccess
,
297 WINBOOL bAuditFailure
302 Status
= RtlAddAuditAccessAce (pAcl
,
308 if (!NT_SUCCESS(Status
))
310 SetLastError (RtlNtStatusToDosError (Status
));
327 Status
= RtlDeleteAce (pAcl
,
329 if (!NT_SUCCESS(Status
))
331 SetLastError (RtlNtStatusToDosError (Status
));
346 return RtlFirstFreeAce (pAcl
,
361 Status
= RtlGetAce (pAcl
,
364 if (!NT_SUCCESS(Status
))
366 SetLastError (RtlNtStatusToDosError (Status
));