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 (alexi@tinykrnl.org) - Updated - 27-Feb-2006
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 PVOID PFS_FILTER_CALLBACKS
;
32 typedef USHORT SECURITY_DESCRIPTOR_CONTROL
, *PSECURITY_DESCRIPTOR_CONTROL
;
34 typedef struct _RTL_SPLAY_LINKS
36 struct _RTL_SPLAY_LINKS
*Parent
;
37 struct _RTL_SPLAY_LINKS
*LeftChild
;
38 struct _RTL_SPLAY_LINKS
*RightChild
;
39 } RTL_SPLAY_LINKS
, *PRTL_SPLAY_LINKS
;
41 typedef struct _RTL_GENERIC_TABLE RTL_GENERIC_TABLE
, *PRTL_GENERIC_TABLE
;
42 typedef ULONG TABLE_SEARCH_RESULT
;
44 #if defined(USE_LPC6432)
45 #define LPC_CLIENT_ID CLIENT_ID64
46 #define LPC_SIZE_T ULONGLONG
47 #define LPC_PVOID ULONGLONG
48 #define LPC_HANDLE ULONGLONG
50 #define LPC_CLIENT_ID CLIENT_ID
51 #define LPC_SIZE_T SIZE_T
52 #define LPC_PVOID PVOID
53 #define LPC_HANDLE HANDLE
56 typedef struct _PORT_MESSAGE
72 CSHORT DataInfoOffset
;
78 LPC_CLIENT_ID ClientId
;
79 double DoNotUseThisField
;
84 LPC_SIZE_T ClientViewSize
;
87 } PORT_MESSAGE
, *PPORT_MESSAGE
;
89 typedef struct _PORT_VIEW
92 LPC_HANDLE SectionHandle
;
96 LPC_PVOID ViewRemoteBase
;
97 } PORT_VIEW
, *PPORT_VIEW
;
99 typedef struct _REMOTE_PORT_VIEW
104 } REMOTE_PORT_VIEW
, *PREMOTE_PORT_VIEW
;
106 typedef struct _KAPC_STATE
108 LIST_ENTRY ApcListHead
[2];
109 struct _KPROCESS
*Process
;
110 BOOLEAN KernelApcInProgress
;
111 BOOLEAN KernelApcPending
;
112 BOOLEAN UserApcPending
;
113 } KAPC_STATE
, *PKAPC_STATE
, *RESTRICTED_POINTER PRKAPC_STATE
;
115 typedef struct _KQUEUE
117 DISPATCHER_HEADER Header
;
118 LIST_ENTRY EntryListHead
;
121 LIST_ENTRY ThreadListHead
;
122 } KQUEUE
, *PKQUEUE
, *RESTRICTED_POINTER PRKQUEUE
;
124 typedef struct _ACE_HEADER
129 } ACE_HEADER
, *PACE_HEADER
;
131 typedef enum _RTL_GENERIC_COMPARE_RESULTS
136 } RTL_GENERIC_COMPARE_RESULTS
;
138 typedef struct _SID_IDENTIFIER_AUTHORITY
141 } SID_IDENTIFIER_AUTHORITY
, *PSID_IDENTIFIER_AUTHORITY
;
143 typedef struct _SID_AND_ATTRIBUTES
147 } SID_AND_ATTRIBUTES
, * PSID_AND_ATTRIBUTES
;
149 typedef struct _TOKEN_SOURCE
151 CHAR SourceName
[TOKEN_SOURCE_LENGTH
];
152 LUID SourceIdentifier
;
153 } TOKEN_SOURCE
, *PTOKEN_SOURCE
;
155 typedef struct _TOKEN_CONTROL
158 LUID AuthenticationId
;
160 TOKEN_SOURCE TokenSource
;
161 } TOKEN_CONTROL
, *PTOKEN_CONTROL
;
163 typedef struct _SECURITY_CLIENT_CONTEXT
165 SECURITY_QUALITY_OF_SERVICE SecurityQos
;
166 PACCESS_TOKEN ClientToken
;
167 BOOLEAN DirectlyAccessClientToken
;
168 BOOLEAN DirectAccessEffectiveOnly
;
169 BOOLEAN ServerIsRemote
;
170 TOKEN_CONTROL ClientTokenControl
;
171 } SECURITY_CLIENT_CONTEXT
, *PSECURITY_CLIENT_CONTEXT
;
173 typedef struct _SECURITY_DESCRIPTOR_RELATIVE
177 SECURITY_DESCRIPTOR_CONTROL Control
;
182 } SECURITY_DESCRIPTOR_RELATIVE
, *PISECURITY_DESCRIPTOR_RELATIVE
;
184 typedef struct _TOKEN_GROUPS
187 SID_AND_ATTRIBUTES Groups
[ANYSIZE_ARRAY
];
188 } TOKEN_GROUPS
, *PTOKEN_GROUPS
;
190 typedef struct _TOKEN_PRIVILEGES
192 ULONG PrivilegeCount
;
193 LUID_AND_ATTRIBUTES Privileges
[ANYSIZE_ARRAY
];
194 } TOKEN_PRIVILEGES
, *PTOKEN_PRIVILEGES
;
196 typedef struct _TOKEN_USER
198 SID_AND_ATTRIBUTES User
;
199 } TOKEN_USER
, *PTOKEN_USER
;
201 typedef enum _TOKEN_INFORMATION_CLASS
211 TokenImpersonationLevel
,
215 TokenGroupsAndPrivileges
,
216 TokenSessionReference
,
224 TokenAccessInformation
,
227 TokenIntegrityLevelDesktop
,
228 TokenMandatoryPolicy
,
230 } TOKEN_INFORMATION_CLASS
, *PTOKEN_INFORMATION_CLASS
;
232 typedef struct _TOKEN_OWNER
235 } TOKEN_OWNER
, *PTOKEN_OWNER
;
237 typedef struct _TOKEN_PRIMARY_GROUP
240 } TOKEN_PRIMARY_GROUP
, *PTOKEN_PRIMARY_GROUP
;
242 typedef struct _TOKEN_DEFAULT_DACL
245 } TOKEN_DEFAULT_DACL
, *PTOKEN_DEFAULT_DACL
;
250 #define HEAP_NO_SERIALIZE 0x00000001
251 #define HEAP_GROWABLE 0x00000002
252 #define HEAP_GENERATE_EXCEPTIONS 0x00000004
253 #define HEAP_ZERO_MEMORY 0x00000008
254 #define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010
255 #define HEAP_TAIL_CHECKING_ENABLED 0x00000020
256 #define HEAP_FREE_CHECKING_ENABLED 0x00000040
257 #define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080
259 #define HEAP_CREATE_ALIGN_16 0x00010000
260 #define HEAP_CREATE_ENABLE_TRACING 0x00020000
261 #define HEAP_CREATE_ENABLE_EXECUTE 0x00040000
263 #endif // !NTOS_MODE_USER