#include <ntos/ntdef.h>
#include <ntos/types.h>
+/* Privileges */
+#define SE_MIN_WELL_KNOWN_PRIVILEGE (2L)
+#define SE_CREATE_TOKEN_PRIVILEGE (2L)
+#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L)
+#define SE_LOCK_MEMORY_PRIVILEGE (4L)
+#define SE_INCREASE_QUOTA_PRIVILEGE (5L)
+#define SE_UNSOLICITED_INPUT_PRIVILEGE (6L) /* unused */
+#define SE_MACHINE_ACCOUNT_PRIVILEGE (6L)
+#define SE_TCB_PRIVILEGE (7L)
+#define SE_SECURITY_PRIVILEGE (8L)
+#define SE_TAKE_OWNERSHIP_PRIVILEGE (9L)
+#define SE_LOAD_DRIVER_PRIVILEGE (10L)
+#define SE_SYSTEM_PROFILE_PRIVILEGE (11L)
+#define SE_SYSTEMTIME_PRIVILEGE (12L)
+#define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L)
+#define SE_INC_BASE_PRIORITY_PRIVILEGE (14L)
+#define SE_CREATE_PAGEFILE_PRIVILEGE (15L)
+#define SE_CREATE_PERMANENT_PRIVILEGE (16L)
+#define SE_BACKUP_PRIVILEGE (17L)
+#define SE_RESTORE_PRIVILEGE (18L)
+#define SE_SHUTDOWN_PRIVILEGE (19L)
+#define SE_DEBUG_PRIVILEGE (20L)
+#define SE_AUDIT_PRIVILEGE (21L)
+#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L)
+#define SE_CHANGE_NOTIFY_PRIVILEGE (23L)
+#define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L)
+#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_REMOTE_SHUTDOWN_PRIVILEGE
+
+#if 0
+/* Security descriptor control. */
+#define SECURITY_DESCRIPTOR_REVISION (1)
+#define SECURITY_DESCRIPTOR_MIN_LENGTH (20)
+#define SE_OWNER_DEFAULTED (1)
+#define SE_GROUP_DEFAULTED (2)
+#define SE_DACL_PRESENT (4)
+#define SE_DACL_DEFAULTED (8)
+#define SE_SACL_PRESENT (16)
+#define SE_SACL_DEFAULTED (32)
+#define SE_SELF_RELATIVE (32768)
+#endif
+
+typedef ULONG ACCESS_MODE, *PACCESS_MODE;
+
+#if 0
+typedef struct _ACE_HEADER
+{
+ CHAR AceType;
+ CHAR AceFlags;
+ USHORT AceSize;
+ ACCESS_MASK AccessMask;
+} ACE_HEADER, *PACE_HEADER;
+
+typedef struct
+{
+ ACE_HEADER Header;
+} ACE, *PACE;
+#endif
+
+#ifdef __GNU__
+typedef struct _SECURITY_DESCRIPTOR_CONTEXT
+{
+} SECURITY_DESCRIPTOR_CONTEXT, *PSECURITY_DESCRIPTOR_CONTEXT;
+#endif
+
+
+#ifndef __USE_W32API
+
/* SID Auhority */
#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
#define DOMAIN_ALIAS_RID_BACKUP_OPS (0x227L)
#define DOMAIN_ALIAS_RID_REPLICATOR (0x228L)
-/* Privileges */
-#define SE_MIN_WELL_KNOWN_PRIVILEGE (2L)
-#define SE_CREATE_TOKEN_PRIVILEGE (2L)
-#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L)
-#define SE_LOCK_MEMORY_PRIVILEGE (4L)
-#define SE_INCREASE_QUOTA_PRIVILEGE (5L)
-#define SE_UNSOLICITED_INPUT_PRIVILEGE (6L) /* unused */
-#define SE_MACHINE_ACCOUNT_PRIVILEGE (6L)
-#define SE_TCB_PRIVILEGE (7L)
-#define SE_SECURITY_PRIVILEGE (8L)
-#define SE_TAKE_OWNERSHIP_PRIVILEGE (9L)
-#define SE_LOAD_DRIVER_PRIVILEGE (10L)
-#define SE_SYSTEM_PROFILE_PRIVILEGE (11L)
-#define SE_SYSTEMTIME_PRIVILEGE (12L)
-#define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L)
-#define SE_INC_BASE_PRIORITY_PRIVILEGE (14L)
-#define SE_CREATE_PAGEFILE_PRIVILEGE (15L)
-#define SE_CREATE_PERMANENT_PRIVILEGE (16L)
-#define SE_BACKUP_PRIVILEGE (17L)
-#define SE_RESTORE_PRIVILEGE (18L)
-#define SE_SHUTDOWN_PRIVILEGE (19L)
-#define SE_DEBUG_PRIVILEGE (20L)
-#define SE_AUDIT_PRIVILEGE (21L)
-#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L)
-#define SE_CHANGE_NOTIFY_PRIVILEGE (23L)
-#define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L)
-#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_REMOTE_SHUTDOWN_PRIVILEGE
-
-#if 0
-/* Security descriptor control. */
-#define SECURITY_DESCRIPTOR_REVISION (1)
-#define SECURITY_DESCRIPTOR_MIN_LENGTH (20)
-#define SE_OWNER_DEFAULTED (1)
-#define SE_GROUP_DEFAULTED (2)
-#define SE_DACL_PRESENT (4)
-#define SE_DACL_DEFAULTED (8)
-#define SE_SACL_PRESENT (16)
-#define SE_SACL_DEFAULTED (32)
-#define SE_SELF_RELATIVE (32768)
-#endif
-
/* ACCESS_MASK */
#define MAXIMUM_ALLOWED (0x2000000L)
#define GENERIC_ALL (0x10000000L)
#define SecurityImpersonation ((SECURITY_IMPERSONATION_LEVEL)3)
#define SecurityDelegation ((SECURITY_IMPERSONATION_LEVEL)4)
+typedef ULONG ACCESS_MASK, *PACCESS_MASK;
typedef ULONG TOKEN_TYPE, *PTOKEN_TYPE;
#define TokenPrimary ((TOKEN_TYPE)1)
#define TokenImpersonation ((TOKEN_TYPE)2)
-//typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
-
-//#define SECURITY_DYNAMIC_TRACKING (TRUE)
-//#define SECURITY_STATIC_TRACKING (FALSE)
-
-typedef ULONG ACCESS_MASK, *PACCESS_MASK;
-typedef ULONG ACCESS_MODE, *PACCESS_MODE;
-
typedef struct _SECURITY_QUALITY_OF_SERVICE
{
ULONG Length;
WORD AceSize;
} ACE_HEADER, *PACE_HEADER;
-typedef struct
-{
- ACE_HEADER Header;
- ACCESS_MASK AccessMask;
-} ACE, *PACE;
-
typedef struct _SID_IDENTIFIER_AUTHORITY
{
BYTE Value[6];
typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
-typedef struct _SECURITY_DESCRIPTOR_CONTEXT
-{
-} SECURITY_DESCRIPTOR_CONTEXT, *PSECURITY_DESCRIPTOR_CONTEXT;
-
typedef LARGE_INTEGER LUID, *PLUID;
typedef struct _SECURITY_DESCRIPTOR
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
+#endif /* !__USE_W32API */
+
+typedef struct
+{
+ ACE_HEADER Header;
+ ACCESS_MASK AccessMask;
+} ACE, *PACE;
#endif /* __INCLUDE_SECURITY_H */