a148fa229cdad41ab137be9dedffdbdbd0687453
[reactos.git] / reactos / include / ndk / setypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/setypes.h
4 * PURPOSE: Defintions for Security Subsystem Types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _SETYPES_H
10 #define _SETYPES_H
11
12 /* DEPENDENCIES **************************************************************/
13
14 /* EXPORTED DATA *************************************************************/
15
16 /* CONSTANTS *****************************************************************/
17 #ifdef NTOS_MODE_USER
18 #define SE_MIN_WELL_KNOWN_PRIVILEGE (2L)
19 #define SE_CREATE_TOKEN_PRIVILEGE (2L)
20 #define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L)
21 #define SE_LOCK_MEMORY_PRIVILEGE (4L)
22 #define SE_INCREASE_QUOTA_PRIVILEGE (5L)
23 #define SE_UNSOLICITED_INPUT_PRIVILEGE (6L)
24 #define SE_MACHINE_ACCOUNT_PRIVILEGE (6L)
25 #define SE_TCB_PRIVILEGE (7L)
26 #define SE_SECURITY_PRIVILEGE (8L)
27 #define SE_TAKE_OWNERSHIP_PRIVILEGE (9L)
28 #define SE_LOAD_DRIVER_PRIVILEGE (10L)
29 #define SE_SYSTEM_PROFILE_PRIVILEGE (11L)
30 #define SE_SYSTEMTIME_PRIVILEGE (12L)
31 #define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L)
32 #define SE_INC_BASE_PRIORITY_PRIVILEGE (14L)
33 #define SE_CREATE_PAGEFILE_PRIVILEGE (15L)
34 #define SE_CREATE_PERMANENT_PRIVILEGE (16L)
35 #define SE_BACKUP_PRIVILEGE (17L)
36 #define SE_RESTORE_PRIVILEGE (18L)
37 #define SE_SHUTDOWN_PRIVILEGE (19L)
38 #define SE_DEBUG_PRIVILEGE (20L)
39 #define SE_AUDIT_PRIVILEGE (21L)
40 #define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L)
41 #define SE_CHANGE_NOTIFY_PRIVILEGE (23L)
42 #define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L)
43 #define SE_MAX_WELL_KNOWN_PRIVILEGE (SE_REMOTE_SHUTDOWN_PRIVILEGE)
44 #endif
45
46 /* ENUMERATIONS **************************************************************/
47
48 /* TYPES *********************************************************************/
49
50 #ifndef NTOS_MODE_USER
51 typedef struct _SEP_AUDIT_POLICY_CATEGORIES
52 {
53 UCHAR System:4;
54 UCHAR Logon:4;
55 UCHAR ObjectAccess:4;
56 UCHAR PrivilegeUse:4;
57 UCHAR DetailedTracking:4;
58 UCHAR PolicyChange:4;
59 UCHAR AccountManagement:4;
60 UCHAR DirectoryServiceAccess:4;
61 UCHAR AccountLogon:4;
62 } SEP_AUDIT_POLICY_CATEGORIES, *PSEP_AUDIT_POLICY_CATEGORIES;
63
64 typedef struct _SEP_AUDIT_POLICY_OVERLAY
65 {
66 ULONGLONG PolicyBits:36;
67 UCHAR SetBit:1;
68 } SEP_AUDIT_POLICY_OVERLAY, *PSEP_AUDIT_POLICY_OVERLAY;
69
70 typedef struct _SEP_AUDIT_POLICY
71 {
72 union
73 {
74 SEP_AUDIT_POLICY_CATEGORIES PolicyElements;
75 SEP_AUDIT_POLICY_OVERLAY PolicyOverlay;
76 ULONGLONG Overlay;
77 };
78 } SEP_AUDIT_POLICY, *PSEP_AUDIT_POLICY;
79
80 typedef struct _TOKEN
81 {
82 TOKEN_SOURCE TokenSource; /* 0x00 */
83 LUID TokenId; /* 0x10 */
84 LUID AuthenticationId; /* 0x18 */
85 LUID ParentTokenId; /* 0x20 */
86 LARGE_INTEGER ExpirationTime; /* 0x28 */
87 struct _ERESOURCE *TokenLock; /* 0x30 */
88 SEP_AUDIT_POLICY AuditPolicy; /* 0x38 */
89 LUID ModifiedId; /* 0x40 */
90 ULONG SessionId; /* 0x48 */
91 ULONG UserAndGroupCount; /* 0x4C */
92 ULONG RestrictedSidCount; /* 0x50 */
93 ULONG PrivilegeCount; /* 0x54 */
94 ULONG VariableLength; /* 0x58 */
95 ULONG DynamicCharged; /* 0x5C */
96 ULONG DynamicAvailable; /* 0x60 */
97 ULONG DefaultOwnerIndex; /* 0x64 */
98 PSID_AND_ATTRIBUTES UserAndGroups; /* 0x68 */
99 PSID_AND_ATTRIBUTES RestrictedSids; /* 0x6C */
100 PSID PrimaryGroup; /* 0x70 */
101 PLUID_AND_ATTRIBUTES Privileges; /* 0x74 */
102 PULONG DynamicPart; /* 0x78 */
103 PACL DefaultDacl; /* 0x7C */
104 TOKEN_TYPE TokenType; /* 0x80 */
105 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* 0x84 */
106 ULONG TokenFlags; /* 0x88 */
107 BOOLEAN TokenInUse; /* 0x8C */
108 PVOID ProxyData; /* 0x90 */
109 PVOID AuditData; /* 0x94 */
110 LUID OriginatingLogonSession; /* 0x98 */
111 ULONG VariablePart; /* 0xA0 */
112 } TOKEN, *PTOKEN;
113
114 typedef struct _AUX_DATA
115 {
116 PPRIVILEGE_SET PrivilegeSet;
117 GENERIC_MAPPING GenericMapping;
118 ULONG Reserved;
119 } AUX_DATA, *PAUX_DATA;
120
121 typedef struct _SE_AUDIT_PROCESS_CREATION_INFO
122 {
123 POBJECT_NAME_INFORMATION ImageFileName;
124 } SE_AUDIT_PROCESS_CREATION_INFO, *PSE_AUDIT_PROCESS_CREATION_INFO;
125
126 #endif
127 #endif