- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / include / ndk / lpcfuncs.h
1 /*++ NDK Version: 0098
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 lpcfuncs.h
8
9 Abstract:
10
11 Function definitions for the Executive.
12
13 Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17 --*/
18
19 #ifndef _LPCFUNCS_H
20 #define _LPCFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26
27 //
28 // Native calls
29 //
30 NTSYSCALLAPI
31 NTSTATUS
32 NTAPI
33 NtAcceptConnectPort(
34 PHANDLE PortHandle,
35 PVOID PortContext OPTIONAL,
36 PPORT_MESSAGE ConnectionRequest,
37 BOOLEAN AcceptConnection,
38 PPORT_VIEW ServerView OPTIONAL,
39 PREMOTE_PORT_VIEW ClientView OPTIONAL
40 );
41
42 NTSYSCALLAPI
43 NTSTATUS
44 NTAPI
45 NtCompleteConnectPort(
46 HANDLE PortHandle
47 );
48
49 NTSYSCALLAPI
50 NTSTATUS
51 NTAPI
52 NtConnectPort(
53 PHANDLE PortHandle,
54 PUNICODE_STRING PortName,
55 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
56 PPORT_VIEW ClientView OPTIONAL,
57 PREMOTE_PORT_VIEW ServerView OPTIONAL,
58 PULONG MaxMessageLength OPTIONAL,
59 PVOID ConnectionInformation OPTIONAL,
60 PULONG ConnectionInformationLength OPTIONAL
61 );
62
63 NTSYSCALLAPI
64 NTSTATUS
65 NTAPI
66 NtCreatePort(
67 PHANDLE PortHandle,
68 POBJECT_ATTRIBUTES ObjectAttributes,
69 ULONG MaxConnectionInfoLength,
70 ULONG MaxMessageLength,
71 ULONG MaxPoolUsage
72 );
73
74 NTSYSCALLAPI
75 NTSTATUS
76 NTAPI
77 NtCreateWaitablePort(
78 PHANDLE PortHandle,
79 POBJECT_ATTRIBUTES ObjectAttributes,
80 ULONG MaxConnectInfoLength,
81 ULONG MaxDataLength,
82 ULONG NPMessageQueueSize OPTIONAL
83 );
84
85 NTSYSCALLAPI
86 NTSTATUS
87 NTAPI
88 NtImpersonateClientOfPort(
89 HANDLE PortHandle,
90 PPORT_MESSAGE ClientMessage
91 );
92
93 NTSYSCALLAPI
94 NTSTATUS
95 NTAPI
96 NtListenPort(
97 HANDLE PortHandle,
98 PPORT_MESSAGE ConnectionRequest
99 );
100
101 NTSYSCALLAPI
102 NTSTATUS
103 NTAPI
104 NtQueryInformationPort(
105 HANDLE PortHandle,
106 PORT_INFORMATION_CLASS PortInformationClass,
107 PVOID PortInformation,
108 ULONG PortInformationLength,
109 PULONG ReturnLength
110 );
111
112 NTSYSCALLAPI
113 NTSTATUS
114 NTAPI
115 NtReadRequestData(
116 HANDLE PortHandle,
117 PPORT_MESSAGE Message,
118 ULONG Index,
119 PVOID Buffer,
120 ULONG BufferLength,
121 PULONG ReturnLength
122 );
123
124 NTSYSCALLAPI
125 NTSTATUS
126 NTAPI
127 NtReplyPort(
128 IN HANDLE PortHandle,
129 IN PPORT_MESSAGE LpcReply
130 );
131
132 NTSYSCALLAPI
133 NTSTATUS
134 NTAPI
135 NtReplyWaitReceivePort(
136 IN HANDLE PortHandle,
137 OUT PVOID *PortContext OPTIONAL,
138 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
139 OUT PPORT_MESSAGE ReceiveMessage
140 );
141
142 NTSYSCALLAPI
143 NTSTATUS
144 NTAPI
145 NtReplyWaitReceivePortEx(
146 IN HANDLE PortHandle,
147 OUT PVOID *PortContext OPTIONAL,
148 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
149 OUT PPORT_MESSAGE ReceiveMessage,
150 IN PLARGE_INTEGER Timeout OPTIONAL
151 );
152
153 NTSYSCALLAPI
154 NTSTATUS
155 NTAPI
156 NtReplyWaitReplyPort(
157 IN HANDLE PortHandle,
158 OUT PPORT_MESSAGE ReplyMessage
159 );
160
161 NTSYSCALLAPI
162 NTSTATUS
163 NTAPI
164 NtRequestPort(
165 IN HANDLE PortHandle,
166 IN PPORT_MESSAGE LpcMessage
167 );
168
169 NTSYSCALLAPI
170 NTSTATUS
171 NTAPI
172 NtRequestWaitReplyPort(
173 IN HANDLE PortHandle,
174 OUT PPORT_MESSAGE LpcReply,
175 IN PPORT_MESSAGE LpcRequest
176 );
177
178 NTSYSCALLAPI
179 NTSTATUS
180 NTAPI
181 NtSecureConnectPort(
182 PHANDLE PortHandle,
183 PUNICODE_STRING PortName,
184 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
185 PPORT_VIEW ClientView OPTIONAL,
186 PSID Sid OPTIONAL,
187 PREMOTE_PORT_VIEW ServerView OPTIONAL,
188 PULONG MaxMessageLength OPTIONAL,
189 PVOID ConnectionInformation OPTIONAL,
190 PULONG ConnectionInformationLength OPTIONAL
191 );
192
193 NTSYSCALLAPI
194 NTSTATUS
195 NTAPI
196 NtWriteRequestData(
197 HANDLE PortHandle,
198 PPORT_MESSAGE Message,
199 ULONG Index,
200 PVOID Buffer,
201 ULONG BufferLength,
202 PULONG ReturnLength
203 );
204
205 NTSYSAPI
206 NTSTATUS
207 NTAPI
208 ZwAcceptConnectPort(
209 PHANDLE PortHandle,
210 PVOID PortContext OPTIONAL,
211 PPORT_MESSAGE ConnectionRequest,
212 BOOLEAN AcceptConnection,
213 PPORT_VIEW ServerView OPTIONAL,
214 PREMOTE_PORT_VIEW ClientView OPTIONAL
215 );
216
217 NTSYSAPI
218 NTSTATUS
219 NTAPI
220 ZwCompleteConnectPort(
221 HANDLE PortHandle
222 );
223
224 NTSYSAPI
225 NTSTATUS
226 NTAPI
227 ZwConnectPort(
228 PHANDLE PortHandle,
229 PUNICODE_STRING PortName,
230 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
231 PPORT_VIEW ClientView OPTIONAL,
232 PREMOTE_PORT_VIEW ServerView OPTIONAL,
233 PULONG MaxMessageLength OPTIONAL,
234 PVOID ConnectionInformation OPTIONAL,
235 PULONG ConnectionInformationLength OPTIONAL
236 );
237
238 NTSYSAPI
239 NTSTATUS
240 NTAPI
241 ZwCreatePort(
242 PHANDLE PortHandle,
243 POBJECT_ATTRIBUTES ObjectAttributes,
244 ULONG MaxConnectionInfoLength,
245 ULONG MaxMessageLength,
246 ULONG MaxPoolUsage
247 );
248
249 NTSYSAPI
250 NTSTATUS
251 NTAPI
252 ZwCreateWaitablePort(
253 PHANDLE PortHandle,
254 POBJECT_ATTRIBUTES ObjectAttributes,
255 ULONG MaxConnectInfoLength,
256 ULONG MaxDataLength,
257 ULONG NPMessageQueueSize OPTIONAL
258 );
259
260 NTSYSAPI
261 NTSTATUS
262 NTAPI
263 ZwImpersonateClientOfPort(
264 HANDLE PortHandle,
265 PPORT_MESSAGE ClientMessage
266 );
267
268 NTSYSAPI
269 NTSTATUS
270 NTAPI
271 ZwListenPort(
272 HANDLE PortHandle,
273 PPORT_MESSAGE ConnectionRequest
274 );
275
276 NTSYSAPI
277 NTSTATUS
278 NTAPI
279 ZwQueryInformationPort(
280 HANDLE PortHandle,
281 PORT_INFORMATION_CLASS PortInformationClass,
282 PVOID PortInformation,
283 ULONG PortInformationLength,
284 PULONG ReturnLength
285 );
286
287 NTSYSAPI
288 NTSTATUS
289 NTAPI
290 ZwReadRequestData(
291 HANDLE PortHandle,
292 PPORT_MESSAGE Message,
293 ULONG Index,
294 PVOID Buffer,
295 ULONG BufferLength,
296 PULONG ReturnLength
297 );
298
299 NTSYSAPI
300 NTSTATUS
301 NTAPI
302 ZwReplyPort(
303 IN HANDLE PortHandle,
304 IN PPORT_MESSAGE LpcReply
305 );
306
307 NTSYSAPI
308 NTSTATUS
309 NTAPI
310 ZwReplyWaitReceivePort(
311 IN HANDLE PortHandle,
312 OUT PVOID *PortContext OPTIONAL,
313 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
314 OUT PPORT_MESSAGE ReceiveMessage
315 );
316
317 NTSYSAPI
318 NTSTATUS
319 NTAPI
320 ZwReplyWaitReceivePortEx(
321 IN HANDLE PortHandle,
322 OUT PVOID *PortContext OPTIONAL,
323 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
324 OUT PPORT_MESSAGE ReceiveMessage,
325 IN PLARGE_INTEGER Timeout OPTIONAL
326 );
327
328 NTSYSAPI
329 NTSTATUS
330 NTAPI
331 ZwReplyWaitReplyPort(
332 IN HANDLE PortHandle,
333 OUT PPORT_MESSAGE ReplyMessage
334 );
335
336 NTSYSAPI
337 NTSTATUS
338 NTAPI
339 ZwRequestPort(
340 IN HANDLE PortHandle,
341 IN PPORT_MESSAGE LpcMessage
342 );
343
344 NTSYSAPI
345 NTSTATUS
346 NTAPI
347 ZwRequestWaitReplyPort(
348 IN HANDLE PortHandle,
349 OUT PPORT_MESSAGE LpcReply,
350 IN PPORT_MESSAGE LpcRequest
351 );
352
353 NTSYSAPI
354 NTSTATUS
355 NTAPI
356 ZwSecureConnectPort(
357 PHANDLE PortHandle,
358 PUNICODE_STRING PortName,
359 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
360 PPORT_VIEW ClientView OPTIONAL,
361 PSID Sid OPTIONAL,
362 PREMOTE_PORT_VIEW ServerView OPTIONAL,
363 PULONG MaxMessageLength OPTIONAL,
364 PVOID ConnectionInformation OPTIONAL,
365 PULONG ConnectionInformationLength OPTIONAL
366 );
367
368 NTSYSAPI
369 NTSTATUS
370 NTAPI
371 ZwWriteRequestData(
372 HANDLE PortHandle,
373 PPORT_MESSAGE Message,
374 ULONG Index,
375 PVOID Buffer,
376 ULONG BufferLength,
377 PULONG ReturnLength
378 );
379
380 #endif