Define core security structures
This commit is contained in:
88
sdk/xtdk/setypes.h
Normal file
88
sdk/xtdk/setypes.h
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* PROJECT: ExectOS
|
||||||
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
|
* FILE: sdk/xtdk/setypes.h
|
||||||
|
* DESCRIPTION: Kernel Security structures and definitions
|
||||||
|
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __XTDK_SETYPES_H
|
||||||
|
#define __XTDK_SETYPES_H
|
||||||
|
|
||||||
|
#include <xttypes.h>
|
||||||
|
#include <xtstruct.h>
|
||||||
|
#include <xtbase.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Privilege LUIDs */
|
||||||
|
#define SE_LUID_MIN_WELL_KNOWN_PRIVILEGE (LUID){2, 0}
|
||||||
|
#define SE_LUID_CREATE_TOKEN_PRIVILEGE (LUID){2, 0}
|
||||||
|
#define SE_LUID_ASSIGNPRIMARYTOKEN_PRIVILEGE (LUID){3, 0}
|
||||||
|
#define SE_LUID_LOCK_MEMORY_PRIVILEGE (LUID){4, 0}
|
||||||
|
#define SE_LUID_INCREASE_QUOTA_PRIVILEGE (LUID){5, 0}
|
||||||
|
#define SE_LUID_MACHINE_ACCOUNT_PRIVILEGE (LUID){6, 0}
|
||||||
|
#define SE_LUID_TCB_PRIVILEGE (LUID){7, 0}
|
||||||
|
#define SE_LUID_SECURITY_PRIVILEGE (LUID){8, 0}
|
||||||
|
#define SE_LUID_TAKE_OWNERSHIP_PRIVILEGE (LUID){9, 0}
|
||||||
|
#define SE_LUID_LOAD_DRIVER_PRIVILEGE (LUID){10, 0}
|
||||||
|
#define SE_LUID_SYSTEM_PROFILE_PRIVILEGE (LUID){11, 0}
|
||||||
|
#define SE_LUID_SYSTEMTIME_PRIVILEGE (LUID){12, 0}
|
||||||
|
#define SE_LUID_PROF_SINGLE_PROCESS_PRIVILEGE (LUID){13, 0}
|
||||||
|
#define SE_LUID_INC_BASE_PRIORITY_PRIVILEGE (LUID){14, 0}
|
||||||
|
#define SE_LUID_CREATE_PAGEFILE_PRIVILEGE (LUID){15, 0}
|
||||||
|
#define SE_LUID_CREATE_PERMANENT_PRIVILEGE (LUID){16, 0}
|
||||||
|
#define SE_LUID_BACKUP_PRIVILEGE (LUID){17, 0}
|
||||||
|
#define SE_LUID_RESTORE_PRIVILEGE (LUID){18, 0}
|
||||||
|
#define SE_LUID_SHUTDOWN_PRIVILEGE (LUID){19, 0}
|
||||||
|
#define SE_LUID_DEBUG_PRIVILEGE (LUID){20, 0}
|
||||||
|
#define SE_LUID_AUDIT_PRIVILEGE (LUID){21, 0}
|
||||||
|
#define SE_LUID_SYSTEM_ENVIRONMENT_PRIVILEGE (LUID){22, 0}
|
||||||
|
#define SE_LUID_CHANGE_NOTIFY_PRIVILEGE (LUID){23, 0}
|
||||||
|
#define SE_LUID_REMOTE_SHUTDOWN_PRIVILEGE (LUID){24, 0}
|
||||||
|
#define SE_LUID_UNDOCK_PRIVILEGE (LUID){25, 0}
|
||||||
|
#define SE_LUID_SYNC_AGENT_PRIVILEGE (LUID){26, 0}
|
||||||
|
#define SE_LUID_ENABLE_DELEGATION_PRIVILEGE (LUID){27, 0}
|
||||||
|
#define SE_LUID_MANAGE_VOLUME_PRIVILEGE (LUID){28, 0}
|
||||||
|
#define SE_LUID_IMPERSONATE_PRIVILEGE (LUID){29, 0}
|
||||||
|
#define SE_LUID_CREATE_GLOBAL_PRIVILEGE (LUID){30, 0}
|
||||||
|
#define SE_LUID_TRUSTED_CREDMAN_ACCESS_PRIVILEGE (LUID){31, 0}
|
||||||
|
#define SE_LUID_RELABEL_PRIVILEGE (LUID){32, 0}
|
||||||
|
#define SE_LUID_INC_WORKING_SET_PRIVILEGE (LUID){33, 0}
|
||||||
|
#define SE_LUID_TIME_ZONE_PRIVILEGE (LUID){34, 0}
|
||||||
|
#define SE_LUID_CREATE_SYMBOLIC_LINK_PRIVILEGE (LUID){35, 0}
|
||||||
|
|
||||||
|
/* Default security quota */
|
||||||
|
#define SE_DEFAULT_SECURITY_QUOTA 2048
|
||||||
|
|
||||||
|
/* C/C++ specific code */
|
||||||
|
#ifndef __XTOS_ASSEMBLER__
|
||||||
|
|
||||||
|
/* Security impersonation levels */
|
||||||
|
typedef enum _SECURITY_IMPERSONATION_LEVEL
|
||||||
|
{
|
||||||
|
SecurityAnonymous,
|
||||||
|
SecurityIdentification,
|
||||||
|
SecurityImpersonation,
|
||||||
|
SecurityDelegation
|
||||||
|
} SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
|
||||||
|
|
||||||
|
/* Generic security mapping structure definition */
|
||||||
|
typedef struct _GENERIC_MAPPING
|
||||||
|
{
|
||||||
|
ULONG GenericRead;
|
||||||
|
ULONG GenericWrite;
|
||||||
|
ULONG GenericExecute;
|
||||||
|
ULONG GenericAll;
|
||||||
|
} GENERIC_MAPPING, *PGENERIC_MAPPING;
|
||||||
|
|
||||||
|
/* Security quality of service structure definition */
|
||||||
|
typedef struct _SECURITY_QUALITY_OF_SERVICE
|
||||||
|
{
|
||||||
|
ULONG Length;
|
||||||
|
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||||
|
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
|
||||||
|
BOOLEAN EffectiveOnly;
|
||||||
|
} SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
|
||||||
|
|
||||||
|
#endif /* __XTOS_ASSEMBLER__ */
|
||||||
|
#endif /* __XTDK_SETYPES_H */
|
||||||
@@ -17,6 +17,9 @@
|
|||||||
/* C/C++ specific code */
|
/* C/C++ specific code */
|
||||||
#ifndef __XTOS_ASSEMBLER__
|
#ifndef __XTOS_ASSEMBLER__
|
||||||
|
|
||||||
|
/* Access mask */
|
||||||
|
typedef ULONG ACCESS_MASK, *PACCESS_MASK;
|
||||||
|
|
||||||
/* Kernel affinity */
|
/* Kernel affinity */
|
||||||
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;
|
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;
|
||||||
|
|
||||||
@@ -41,6 +44,12 @@ typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER;
|
|||||||
/* Physical address */
|
/* Physical address */
|
||||||
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
|
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
|
||||||
|
|
||||||
|
/* Security descriptor */
|
||||||
|
typedef PVOID PSECURITY_DESCRIPTOR;
|
||||||
|
|
||||||
|
/* Security context tracking mode */
|
||||||
|
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
|
||||||
|
|
||||||
/* 128-bit 16-byte aligned XMM register */
|
/* 128-bit 16-byte aligned XMM register */
|
||||||
typedef struct _M128
|
typedef struct _M128
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
#include <potypes.h>
|
#include <potypes.h>
|
||||||
#include <pstypes.h>
|
#include <pstypes.h>
|
||||||
#include <rtltypes.h>
|
#include <rtltypes.h>
|
||||||
|
#include <setypes.h>
|
||||||
|
|
||||||
/* Architecture-specific low level data types headers */
|
/* Architecture-specific low level data types headers */
|
||||||
#include ARCH_HEADER(artypes.h)
|
#include ARCH_HEADER(artypes.h)
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ typedef enum _MMSYSTEM_PTE_POOL_TYPE MMSYSTEM_PTE_POOL_TYPE, *PMMSYSTEM_PTE_POOL
|
|||||||
typedef enum _MODE MODE, *PMODE;
|
typedef enum _MODE MODE, *PMODE;
|
||||||
typedef enum _RTL_BALANCED_NODE_COLOR RTL_BALANCED_NODE_COLOR, *PRTL_BALANCED_NODE_COLOR;
|
typedef enum _RTL_BALANCED_NODE_COLOR RTL_BALANCED_NODE_COLOR, *PRTL_BALANCED_NODE_COLOR;
|
||||||
typedef enum _RTL_VARIABLE_TYPE RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE;
|
typedef enum _RTL_VARIABLE_TYPE RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE;
|
||||||
|
typedef enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
|
||||||
typedef enum _SYSTEM_FIRMWARE_TYPE SYSTEM_FIRMWARE_TYPE, *PSYSTEM_FIRMWARE_TYPE;
|
typedef enum _SYSTEM_FIRMWARE_TYPE SYSTEM_FIRMWARE_TYPE, *PSYSTEM_FIRMWARE_TYPE;
|
||||||
typedef enum _SYSTEM_RESOURCE_TYPE SYSTEM_RESOURCE_TYPE, *PSYSTEM_RESOURCE_TYPE;
|
typedef enum _SYSTEM_RESOURCE_TYPE SYSTEM_RESOURCE_TYPE, *PSYSTEM_RESOURCE_TYPE;
|
||||||
typedef enum _WAIT_TYPE WAIT_TYPE, *PWAIT_TYPE;
|
typedef enum _WAIT_TYPE WAIT_TYPE, *PWAIT_TYPE;
|
||||||
@@ -251,6 +252,7 @@ typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWAR
|
|||||||
typedef struct _FLOAT128 FLOAT128, *PFLOAT128;
|
typedef struct _FLOAT128 FLOAT128, *PFLOAT128;
|
||||||
typedef struct _GENERAL_LOOKASIDE GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
|
typedef struct _GENERAL_LOOKASIDE GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
|
||||||
typedef struct _GENERIC_ADDRESS GENERIC_ADDRESS, *PGENERIC_ADDRESS;
|
typedef struct _GENERIC_ADDRESS GENERIC_ADDRESS, *PGENERIC_ADDRESS;
|
||||||
|
typedef struct _GENERIC_MAPPING GENERIC_MAPPING, *PGENERIC_MAPPING;
|
||||||
typedef struct _GUID GUID, *PGUID;
|
typedef struct _GUID GUID, *PGUID;
|
||||||
typedef struct _HL_FRAMEBUFFER_DATA HL_FRAMEBUFFER_DATA, *PHL_FRAMEBUFFER_DATA;
|
typedef struct _HL_FRAMEBUFFER_DATA HL_FRAMEBUFFER_DATA, *PHL_FRAMEBUFFER_DATA;
|
||||||
typedef struct _HL_SCROLL_REGION_DATA HL_SCROLL_REGION_DATA, *PHL_SCROLL_REGION_DATA;
|
typedef struct _HL_SCROLL_REGION_DATA HL_SCROLL_REGION_DATA, *PHL_SCROLL_REGION_DATA;
|
||||||
@@ -346,6 +348,7 @@ typedef struct _RTL_BITMAP RTL_BITMAP, *PRTL_BITMAP;
|
|||||||
typedef struct _RTL_PRINT_CONTEXT RTL_PRINT_CONTEXT, *PRTL_PRINT_CONTEXT;
|
typedef struct _RTL_PRINT_CONTEXT RTL_PRINT_CONTEXT, *PRTL_PRINT_CONTEXT;
|
||||||
typedef struct _RTL_PRINT_FORMAT_PROPERTIES RTL_PRINT_FORMAT_PROPERTIES, *PRTL_PRINT_FORMAT_PROPERTIES;
|
typedef struct _RTL_PRINT_FORMAT_PROPERTIES RTL_PRINT_FORMAT_PROPERTIES, *PRTL_PRINT_FORMAT_PROPERTIES;
|
||||||
typedef struct _RTL_RB_TREE RTL_RB_TREE, *PRTL_RB_TREE;
|
typedef struct _RTL_RB_TREE RTL_RB_TREE, *PRTL_RB_TREE;
|
||||||
|
typedef struct _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
|
||||||
typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
|
||||||
typedef struct _SMBIOS_TABLE_HEADER SMBIOS_TABLE_HEADER, *PSMBIOS_TABLE_HEADER;
|
typedef struct _SMBIOS_TABLE_HEADER SMBIOS_TABLE_HEADER, *PSMBIOS_TABLE_HEADER;
|
||||||
typedef struct _SMBIOS3_TABLE_HEADER SMBIOS3_TABLE_HEADER, *PSMBIOS3_TABLE_HEADER;
|
typedef struct _SMBIOS3_TABLE_HEADER SMBIOS3_TABLE_HEADER, *PSMBIOS3_TABLE_HEADER;
|
||||||
|
|||||||
Reference in New Issue
Block a user