3 Copyright (c) Alex Ionescu. All rights reserved.
11 NDK Support for usage without the IFS. Will be deprecated at WDK Release.
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
19 #ifndef NTOS_MODE_USER
22 #define TOKEN_SOURCE_LENGTH 8
24 typedef enum _TOKEN_TYPE
28 } TOKEN_TYPE
, *PTOKEN_TYPE
;
30 typedef PVOID PRTL_HEAP_PARAMETERS
;
31 typedef USHORT SECURITY_DESCRIPTOR_CONTROL
, *PSECURITY_DESCRIPTOR_CONTROL
;
33 typedef struct _RTL_SPLAY_LINKS
35 struct _RTL_SPLAY_LINKS
*Parent
;
36 struct _RTL_SPLAY_LINKS
*LeftChild
;
37 struct _RTL_SPLAY_LINKS
*RightChild
;
38 } RTL_SPLAY_LINKS
, *PRTL_SPLAY_LINKS
;
40 #if defined(USE_LPC6432)
41 #define LPC_CLIENT_ID CLIENT_ID64
42 #define LPC_SIZE_T ULONGLONG
43 #define LPC_PVOID ULONGLONG
44 #define LPC_HANDLE ULONGLONG
46 #define LPC_CLIENT_ID CLIENT_ID
47 #define LPC_SIZE_T SIZE_T
48 #define LPC_PVOID PVOID
49 #define LPC_HANDLE HANDLE
52 typedef struct _PORT_MESSAGE
68 CSHORT DataInfoOffset
;
74 LPC_CLIENT_ID ClientId
;
75 double DoNotUseThisField
;
80 LPC_SIZE_T ClientViewSize
;
83 } PORT_MESSAGE
, *PPORT_MESSAGE
;
85 typedef struct _PORT_VIEW
88 LPC_HANDLE SectionHandle
;
92 LPC_PVOID ViewRemoteBase
;
93 } PORT_VIEW
, *PPORT_VIEW
;
95 typedef struct _REMOTE_PORT_VIEW
100 } REMOTE_PORT_VIEW
, *PREMOTE_PORT_VIEW
;
102 typedef struct _KAPC_STATE
104 LIST_ENTRY ApcListHead
[2];
105 struct _KPROCESS
*Process
;
106 BOOLEAN KernelApcInProgress
;
107 BOOLEAN KernelApcPending
;
108 BOOLEAN UserApcPending
;
109 } KAPC_STATE
, *PKAPC_STATE
, *RESTRICTED_POINTER PRKAPC_STATE
;
111 typedef struct _KQUEUE
113 DISPATCHER_HEADER Header
;
114 LIST_ENTRY EntryListHead
;
117 LIST_ENTRY ThreadListHead
;
118 } KQUEUE
, *PKQUEUE
, *RESTRICTED_POINTER PRKQUEUE
;
120 typedef enum _RTL_GENERIC_COMPARE_RESULTS
125 } RTL_GENERIC_COMPARE_RESULTS
;
127 typedef struct _SID_IDENTIFIER_AUTHORITY
130 } SID_IDENTIFIER_AUTHORITY
, *PSID_IDENTIFIER_AUTHORITY
;
132 typedef struct _SID_AND_ATTRIBUTES
136 } SID_AND_ATTRIBUTES
, * PSID_AND_ATTRIBUTES
;
138 typedef struct _TOKEN_SOURCE
140 CHAR SourceName
[TOKEN_SOURCE_LENGTH
];
141 LUID SourceIdentifier
;
142 } TOKEN_SOURCE
, *PTOKEN_SOURCE
;
144 typedef struct _TOKEN_CONTROL
147 LUID AuthenticationId
;
149 TOKEN_SOURCE TokenSource
;
150 } TOKEN_CONTROL
, *PTOKEN_CONTROL
;
152 typedef struct _SECURITY_CLIENT_CONTEXT
154 SECURITY_QUALITY_OF_SERVICE SecurityQos
;
155 PACCESS_TOKEN ClientToken
;
156 BOOLEAN DirectlyAccessClientToken
;
157 BOOLEAN DirectAccessEffectiveOnly
;
158 BOOLEAN ServerIsRemote
;
159 TOKEN_CONTROL ClientTokenControl
;
160 } SECURITY_CLIENT_CONTEXT
, *PSECURITY_CLIENT_CONTEXT
;
162 typedef struct _SECURITY_DESCRIPTOR_RELATIVE
166 SECURITY_DESCRIPTOR_CONTROL Control
;
171 } SECURITY_DESCRIPTOR_RELATIVE
, *PISECURITY_DESCRIPTOR_RELATIVE
;
173 typedef struct _TOKEN_GROUPS
176 SID_AND_ATTRIBUTES Groups
[ANYSIZE_ARRAY
];
177 } TOKEN_GROUPS
, *PTOKEN_GROUPS
;
179 typedef struct _TOKEN_PRIVILEGES
181 ULONG PrivilegeCount
;
182 LUID_AND_ATTRIBUTES Privileges
[ANYSIZE_ARRAY
];
183 } TOKEN_PRIVILEGES
, *PTOKEN_PRIVILEGES
;
185 typedef struct _TOKEN_USER
187 SID_AND_ATTRIBUTES User
;
188 } TOKEN_USER
, *PTOKEN_USER
;
190 typedef enum _TOKEN_INFORMATION_CLASS
200 TokenImpersonationLevel
,
204 TokenGroupsAndPrivileges
,
205 TokenSessionReference
,
213 TokenAccessInformation
,
216 TokenIntegrityLevelDesktop
,
217 TokenMandatoryPolicy
,
219 } TOKEN_INFORMATION_CLASS
, *PTOKEN_INFORMATION_CLASS
;
221 typedef struct _TOKEN_OWNER
224 } TOKEN_OWNER
, *PTOKEN_OWNER
;
226 typedef struct _TOKEN_PRIMARY_GROUP
229 } TOKEN_PRIMARY_GROUP
, *PTOKEN_PRIMARY_GROUP
;
231 typedef struct _TOKEN_DEFAULT_DACL
234 } TOKEN_DEFAULT_DACL
, *PTOKEN_DEFAULT_DACL
;
236 #endif // !NTOS_MODE_USER