-/* $Id: ac.c,v 1.5 2002/11/14 18:21:04 chorns Exp $
+/* $Id: ac.c,v 1.11 2004/09/13 12:14:11 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* PURPOSE: ACL/ACE functions
*/
-#define NTOS_MODE_USER
-#include <ntos.h>
-#include <windows.h>
+#include "advapi32.h"
/* --- ACL --- */
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
GetAclInformation (
PACL pAcl,
}
-#if 0
-DWORD
-WINAPI
-GetAuditedPermissionsFromAclA (
- IN PACL pacl,
- IN PTRUSTEE_A pTrustee,
- OUT PACCESS_MASK pSuccessfulAuditedRights,
- OUT PACCESS_MASK pFailedAuditRights
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-DWORD
-WINAPI
-GetAuditedPermissionsFromAclW (
- IN PACL pacl,
- IN PTRUSTEE_W pTrustee,
- OUT PACCESS_MASK pSuccessfulAuditedRights,
- OUT PACCESS_MASK pFailedAuditRights
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-DWORD
-WINAPI
-GetEffectiveRightsFromAclA (
- IN PACL pacl,
- IN PTRUSTEE_A pTrustee,
- OUT PACCESS_MASK pAccessRights
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-DWORD
-WINAPI
-GetEffectiveRightsFromAclW (
- IN PACL pacl,
- IN PTRUSTEE_W pTrustee,
- OUT PACCESS_MASK pAccessRights
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-DWORD
-WINAPI
-GetExplicitEntriesFromAclA (
- IN PACL pacl,
- OUT PULONG pcCountOfExplicitEntries,
- OUT PEXPLICIT_ACCESS_A * pListOfExplicitEntries
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-DWORD
-WINAPI
-GetExplicitEntriesFromAclW (
- IN PACL pacl,
- OUT PULONG pcCountOfExplicitEntries,
- OUT PEXPLICIT_ACCESS_W * pListOfExplicitEntries
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-#endif
-
-
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
InitializeAcl (
PACL pAcl,
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
IsValidAcl (
PACL pAcl
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
SetAclInformation (
PACL pAcl,
}
-#if 0
-DWORD
-WINAPI
-SetEntriesInAclA (
- IN ULONG cCountOfExplicitEntries,
- IN PEXPLICIT_ACCESS_A pListOfExplicitEntries,
- IN PACL OldAcl,
- OUT PACL * NewAcl
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-DWORD
-WINAPI
-SetEntriesInAclW (
- IN ULONG cCountOfExplicitEntries,
- IN PEXPLICIT_ACCESS_W pListOfExplicitEntries,
- IN PACL OldAcl,
- OUT PACL * NewAcl
- )
-{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-#endif
-
-
-
/* --- ACE --- */
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
AddAccessAllowedAce (
PACL pAcl,
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL STDCALL
+AddAccessAllowedAceEx(PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD AceFlags,
+ DWORD AccessMask,
+ PSID pSid)
+{
+ NTSTATUS Status;
+
+ Status = RtlAddAccessAllowedAceEx(pAcl,
+ dwAceRevision,
+ AceFlags,
+ AccessMask,
+ pSid);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
STDCALL
AddAccessDeniedAce (
PACL pAcl,
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL STDCALL
+AddAccessDeniedAceEx(PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD AceFlags,
+ DWORD AccessMask,
+ PSID pSid)
+{
+ NTSTATUS Status;
+
+ Status = RtlAddAccessDeniedAceEx(pAcl,
+ dwAceRevision,
+ AceFlags,
+ AccessMask,
+ pSid);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
STDCALL
AddAce (
PACL pAcl,
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
AddAuditAccessAce (
PACL pAcl,
DWORD dwAceRevision,
DWORD dwAccessMask,
PSID pSid,
- WINBOOL bAuditSuccess,
- WINBOOL bAuditFailure
+ BOOL bAuditSuccess,
+ BOOL bAuditFailure
)
{
NTSTATUS Status;
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL STDCALL
+AddAuditAccessAceEx(PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD AceFlags,
+ DWORD dwAccessMask,
+ PSID pSid,
+ BOOL bAuditSuccess,
+ BOOL bAuditFailure)
+{
+ NTSTATUS Status;
+
+ Status = RtlAddAuditAccessAceEx(pAcl,
+ dwAceRevision,
+ AceFlags,
+ dwAccessMask,
+ pSid,
+ bAuditSuccess,
+ bAuditFailure);
+ if (!NT_SUCCESS(Status))
+ {
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
STDCALL
DeleteAce (
PACL pAcl,
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
FindFirstFreeAce (
PACL pAcl,
)
{
return RtlFirstFreeAce (pAcl,
- (PACE_HEADER*)pAce);
+ (PACE*)pAce);
}
-WINBOOL
+/*
+ * @implemented
+ */
+BOOL
STDCALL
GetAce (
PACL pAcl,
Status = RtlGetAce (pAcl,
dwAceIndex,
- (PACE_HEADER*)pAce);
+ (PACE*)pAce);
if (!NT_SUCCESS(Status))
{
SetLastError (RtlNtStatusToDosError (Status));