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
10 #include <ntdll/rtl.h>
20 LPVOID pAclInformation,
21 DWORD nAclInformationLength,
22 ACL_INFORMATION_CLASS dwAclInformationClass
27 Status = RtlQueryInformationAcl (pAcl,
29 nAclInformationLength,
30 dwAclInformationClass);
31 if (!NT_SUCCESS(Status))
33 SetLastError (RtlNtStatusToDosError (Status));
44 GetAuditedPermissionsFromAclA (
46 IN PTRUSTEE_A pTrustee,
47 OUT PACCESS_MASK pSuccessfulAuditedRights,
48 OUT PACCESS_MASK pFailedAuditRights
51 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
58 GetAuditedPermissionsFromAclW (
60 IN PTRUSTEE_W pTrustee,
61 OUT PACCESS_MASK pSuccessfulAuditedRights,
62 OUT PACCESS_MASK pFailedAuditRights
65 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
72 GetEffectiveRightsFromAclA (
74 IN PTRUSTEE_A pTrustee,
75 OUT PACCESS_MASK pAccessRights
78 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
85 GetEffectiveRightsFromAclW (
87 IN PTRUSTEE_W pTrustee,
88 OUT PACCESS_MASK pAccessRights
91 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
98 GetExplicitEntriesFromAclA (
100 OUT PULONG pcCountOfExplicitEntries,
101 OUT PEXPLICIT_ACCESS_A * pListOfExplicitEntries
104 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
111 GetExplicitEntriesFromAclW (
113 OUT PULONG pcCountOfExplicitEntries,
114 OUT PEXPLICIT_ACCESS_W * pListOfExplicitEntries
117 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
133 Status = RtlCreateAcl (pAcl,
136 if (!NT_SUCCESS(Status))
138 SetLastError (RtlNtStatusToDosError (Status));
152 return RtlValidAcl (pAcl);
160 LPVOID pAclInformation,
161 DWORD nAclInformationLength,
162 ACL_INFORMATION_CLASS dwAclInformationClass
167 Status = RtlSetInformationAcl (pAcl,
169 nAclInformationLength,
170 dwAclInformationClass);
171 if (!NT_SUCCESS(Status))
173 SetLastError (RtlNtStatusToDosError (Status));
185 IN ULONG cCountOfExplicitEntries,
186 IN PEXPLICIT_ACCESS_A pListOfExplicitEntries,
191 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
199 IN ULONG cCountOfExplicitEntries,
200 IN PEXPLICIT_ACCESS_W pListOfExplicitEntries,
205 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
216 AddAccessAllowedAce (
225 Status = RtlAddAccessAllowedAce (pAcl,
229 if (!NT_SUCCESS(Status))
231 SetLastError (RtlNtStatusToDosError (Status));
250 Status = RtlAddAccessDeniedAce (pAcl,
254 if (!NT_SUCCESS(Status))
256 SetLastError (RtlNtStatusToDosError (Status));
269 DWORD dwStartingAceIndex,
276 Status = RtlAddAce (pAcl,
281 if (!NT_SUCCESS(Status))
283 SetLastError (RtlNtStatusToDosError (Status));
298 WINBOOL bAuditSuccess,
299 WINBOOL bAuditFailure
304 Status = RtlAddAuditAccessAce (pAcl,
310 if (!NT_SUCCESS(Status))
312 SetLastError (RtlNtStatusToDosError (Status));
329 Status = RtlDeleteAce (pAcl,
331 if (!NT_SUCCESS(Status))
333 SetLastError (RtlNtStatusToDosError (Status));
348 return RtlFirstFreeAce (pAcl,
363 Status = RtlGetAce (pAcl,
366 if (!NT_SUCCESS(Status))
368 SetLastError (RtlNtStatusToDosError (Status));