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 PVOID EX_PUSH_LOCK
;
122 typedef enum _RTL_GENERIC_COMPARE_RESULTS
127 } RTL_GENERIC_COMPARE_RESULTS
;
129 typedef struct _SID_IDENTIFIER_AUTHORITY
132 } SID_IDENTIFIER_AUTHORITY
, *PSID_IDENTIFIER_AUTHORITY
;
134 typedef struct _SID_AND_ATTRIBUTES
138 } SID_AND_ATTRIBUTES
, * PSID_AND_ATTRIBUTES
;
140 typedef struct _TOKEN_SOURCE
142 CHAR SourceName
[TOKEN_SOURCE_LENGTH
];
143 LUID SourceIdentifier
;
144 } TOKEN_SOURCE
, *PTOKEN_SOURCE
;
146 typedef struct _TOKEN_CONTROL
149 LUID AuthenticationId
;
151 TOKEN_SOURCE TokenSource
;
152 } TOKEN_CONTROL
, *PTOKEN_CONTROL
;
154 typedef struct _SECURITY_CLIENT_CONTEXT
156 SECURITY_QUALITY_OF_SERVICE SecurityQos
;
157 PACCESS_TOKEN ClientToken
;
158 BOOLEAN DirectlyAccessClientToken
;
159 BOOLEAN DirectAccessEffectiveOnly
;
160 BOOLEAN ServerIsRemote
;
161 TOKEN_CONTROL ClientTokenControl
;
162 } SECURITY_CLIENT_CONTEXT
, *PSECURITY_CLIENT_CONTEXT
;
164 typedef struct _SECURITY_DESCRIPTOR_RELATIVE
168 SECURITY_DESCRIPTOR_CONTROL Control
;
173 } SECURITY_DESCRIPTOR_RELATIVE
, *PISECURITY_DESCRIPTOR_RELATIVE
;
175 typedef struct _TOKEN_GROUPS
178 SID_AND_ATTRIBUTES Groups
[ANYSIZE_ARRAY
];
179 } TOKEN_GROUPS
, *PTOKEN_GROUPS
;
181 typedef struct _TOKEN_PRIVILEGES
183 ULONG PrivilegeCount
;
184 LUID_AND_ATTRIBUTES Privileges
[ANYSIZE_ARRAY
];
185 } TOKEN_PRIVILEGES
, *PTOKEN_PRIVILEGES
;
187 typedef struct _TOKEN_USER
189 SID_AND_ATTRIBUTES User
;
190 } TOKEN_USER
, *PTOKEN_USER
;
192 typedef enum _TOKEN_INFORMATION_CLASS
202 TokenImpersonationLevel
,
206 TokenGroupsAndPrivileges
,
207 TokenSessionReference
,
215 TokenAccessInformation
,
218 TokenIntegrityLevelDesktop
,
219 TokenMandatoryPolicy
,
221 } TOKEN_INFORMATION_CLASS
, *PTOKEN_INFORMATION_CLASS
;
223 typedef struct _TOKEN_OWNER
226 } TOKEN_OWNER
, *PTOKEN_OWNER
;
228 typedef struct _TOKEN_PRIMARY_GROUP
231 } TOKEN_PRIMARY_GROUP
, *PTOKEN_PRIMARY_GROUP
;
233 typedef struct _TOKEN_DEFAULT_DACL
236 } TOKEN_DEFAULT_DACL
, *PTOKEN_DEFAULT_DACL
;
238 #endif // !NTOS_MODE_USER