5691ec3c05506d7621d4dfd949e1325905593e61
[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 #if defined(USE_LPC6432)
23 #define LPC_CLIENT_ID CLIENT_ID64
24 #define LPC_SIZE_T ULONGLONG
25 #define LPC_PVOID ULONGLONG
26 #define LPC_HANDLE ULONGLONG
27 #else
28 #define LPC_CLIENT_ID CLIENT_ID
29 #define LPC_SIZE_T SIZE_T
30 #define LPC_PVOID PVOID
31 #define LPC_HANDLE HANDLE
32 #endif
33
34 typedef struct _PORT_MESSAGE
35 {
36 union
37 {
38 struct
39 {
40 CSHORT DataLength;
41 CSHORT TotalLength;
42 } s1;
43 ULONG Length;
44 } u1;
45 union
46 {
47 struct
48 {
49 CSHORT Type;
50 CSHORT DataInfoOffset;
51 } s2;
52 ULONG ZeroInit;
53 } u2;
54 union
55 {
56 LPC_CLIENT_ID ClientId;
57 double DoNotUseThisField;
58 };
59 ULONG MessageId;
60 union
61 {
62 LPC_SIZE_T ClientViewSize;
63 ULONG CallbackId;
64 };
65 } PORT_MESSAGE, *PPORT_MESSAGE;
66
67 typedef struct _PORT_VIEW
68 {
69 ULONG Length;
70 LPC_HANDLE SectionHandle;
71 ULONG SectionOffset;
72 LPC_SIZE_T ViewSize;
73 LPC_PVOID ViewBase;
74 LPC_PVOID ViewRemoteBase;
75 } PORT_VIEW, *PPORT_VIEW;
76
77 typedef struct _REMOTE_PORT_VIEW
78 {
79 ULONG Length;
80 LPC_SIZE_T ViewSize;
81 LPC_PVOID ViewBase;
82 } REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
83
84 typedef struct _KAPC_STATE
85 {
86 LIST_ENTRY ApcListHead[2];
87 PKPROCESS Process;
88 BOOLEAN KernelApcInProgress;
89 BOOLEAN KernelApcPending;
90 BOOLEAN UserApcPending;
91 } KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE;
92
93 typedef struct _KQUEUE
94 {
95 DISPATCHER_HEADER Header;
96 LIST_ENTRY EntryListHead;
97 ULONG CurrentCount;
98 ULONG MaximumCount;
99 LIST_ENTRY ThreadListHead;
100 } KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
101
102 typedef PVOID EX_RUNDOWN_REF;
103 typedef PVOID EX_PUSH_LOCK;
104
105 typedef struct _SECURITY_CLIENT_CONTEXT
106 {
107 SECURITY_QUALITY_OF_SERVICE SecurityQos;
108 PACCESS_TOKEN ClientToken;
109 BOOLEAN DirectlyAccessClientToken;
110 BOOLEAN DirectAccessEffectiveOnly;
111 BOOLEAN ServerIsRemote;
112 TOKEN_CONTROL ClientTokenControl;
113 } SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
114
115 typedef enum _RTL_GENERIC_COMPARE_RESULTS
116 {
117 GenericLessThan,
118 GenericGreaterThan,
119 GenericEqual
120 } RTL_GENERIC_COMPARE_RESULTS;
121
122 #endif
123