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