- Implement RtlInitializeUnicodePrefix and RtlNextUnicodePrefix. The UnicodePrefix...
[reactos.git] / reactos / include / ndk / ifssupp.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/ifssupp.h
4 * PURPOSE: Defintions present in IFS, required for NDK usage.
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 08/16/05
8 */
9 #ifndef _NTIFS_
10 #define _NTIFS_
11
12 /* DEPENDENCIES **************************************************************/
13
14 /* EXPORTED DATA *************************************************************/
15
16 /* CONSTANTS *****************************************************************/
17
18 /* TYPES *********************************************************************/
19
20 typedef PVOID PRTL_HEAP_PARAMETERS;
21
22 typedef struct _RTL_SPLAY_LINKS
23 {
24 struct _RTL_SPLAY_LINKS *Parent;
25 struct _RTL_SPLAY_LINKS *LeftChild;
26 struct _RTL_SPLAY_LINKS *RightChild;
27 } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
28
29 #if defined(USE_LPC6432)
30 #define LPC_CLIENT_ID CLIENT_ID64
31 #define LPC_SIZE_T ULONGLONG
32 #define LPC_PVOID ULONGLONG
33 #define LPC_HANDLE ULONGLONG
34 #else
35 #define LPC_CLIENT_ID CLIENT_ID
36 #define LPC_SIZE_T SIZE_T
37 #define LPC_PVOID PVOID
38 #define LPC_HANDLE HANDLE
39 #endif
40
41 typedef struct _PORT_MESSAGE
42 {
43 union
44 {
45 struct
46 {
47 CSHORT DataLength;
48 CSHORT TotalLength;
49 } s1;
50 ULONG Length;
51 } u1;
52 union
53 {
54 struct
55 {
56 CSHORT Type;
57 CSHORT DataInfoOffset;
58 } s2;
59 ULONG ZeroInit;
60 } u2;
61 union
62 {
63 LPC_CLIENT_ID ClientId;
64 double DoNotUseThisField;
65 };
66 ULONG MessageId;
67 union
68 {
69 LPC_SIZE_T ClientViewSize;
70 ULONG CallbackId;
71 };
72 } PORT_MESSAGE, *PPORT_MESSAGE;
73
74 typedef struct _PORT_VIEW
75 {
76 ULONG Length;
77 LPC_HANDLE SectionHandle;
78 ULONG SectionOffset;
79 LPC_SIZE_T ViewSize;
80 LPC_PVOID ViewBase;
81 LPC_PVOID ViewRemoteBase;
82 } PORT_VIEW, *PPORT_VIEW;
83
84 typedef struct _REMOTE_PORT_VIEW
85 {
86 ULONG Length;
87 LPC_SIZE_T ViewSize;
88 LPC_PVOID ViewBase;
89 } REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
90
91 typedef struct _KAPC_STATE
92 {
93 LIST_ENTRY ApcListHead[2];
94 PKPROCESS Process;
95 BOOLEAN KernelApcInProgress;
96 BOOLEAN KernelApcPending;
97 BOOLEAN UserApcPending;
98 } KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE;
99
100 typedef struct _KQUEUE
101 {
102 DISPATCHER_HEADER Header;
103 LIST_ENTRY EntryListHead;
104 ULONG CurrentCount;
105 ULONG MaximumCount;
106 LIST_ENTRY ThreadListHead;
107 } KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
108
109 typedef PVOID EX_RUNDOWN_REF;
110 typedef PVOID EX_PUSH_LOCK;
111
112 typedef struct _SECURITY_CLIENT_CONTEXT
113 {
114 SECURITY_QUALITY_OF_SERVICE SecurityQos;
115 PACCESS_TOKEN ClientToken;
116 BOOLEAN DirectlyAccessClientToken;
117 BOOLEAN DirectAccessEffectiveOnly;
118 BOOLEAN ServerIsRemote;
119 TOKEN_CONTROL ClientTokenControl;
120 } SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
121
122 typedef enum _RTL_GENERIC_COMPARE_RESULTS
123 {
124 GenericLessThan,
125 GenericGreaterThan,
126 GenericEqual
127 } RTL_GENERIC_COMPARE_RESULTS;
128
129 #endif
130