Create a branch for network fixes.
[reactos.git] / 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 // LPC Exports
29 //
30 #ifndef NTOS_MODE_USER
31 NTKERNELAPI
32 NTSTATUS
33 NTAPI
34 LpcRequestWaitReplyPort(
35 IN PVOID Port,
36 IN PPORT_MESSAGE LpcMessageRequest,
37 OUT PPORT_MESSAGE LpcMessageReply
38 );
39
40 NTSTATUS
41 NTAPI
42 LpcRequestPort(
43 IN PVOID Port,
44 IN PPORT_MESSAGE LpcMessage
45 );
46 #endif
47
48 //
49 // Native calls
50 //
51 NTSYSCALLAPI
52 NTSTATUS
53 NTAPI
54 NtAcceptConnectPort(
55 PHANDLE PortHandle,
56 PVOID PortContext OPTIONAL,
57 PPORT_MESSAGE ConnectionRequest,
58 BOOLEAN AcceptConnection,
59 PPORT_VIEW ServerView OPTIONAL,
60 PREMOTE_PORT_VIEW ClientView OPTIONAL
61 );
62
63 NTSYSCALLAPI
64 NTSTATUS
65 NTAPI
66 NtCompleteConnectPort(
67 HANDLE PortHandle
68 );
69
70 NTSYSCALLAPI
71 NTSTATUS
72 NTAPI
73 NtConnectPort(
74 PHANDLE PortHandle,
75 PUNICODE_STRING PortName,
76 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
77 PPORT_VIEW ClientView OPTIONAL,
78 PREMOTE_PORT_VIEW ServerView OPTIONAL,
79 PULONG MaxMessageLength OPTIONAL,
80 PVOID ConnectionInformation OPTIONAL,
81 PULONG ConnectionInformationLength OPTIONAL
82 );
83
84 NTSYSCALLAPI
85 NTSTATUS
86 NTAPI
87 NtCreatePort(
88 PHANDLE PortHandle,
89 POBJECT_ATTRIBUTES ObjectAttributes,
90 ULONG MaxConnectionInfoLength,
91 ULONG MaxMessageLength,
92 ULONG MaxPoolUsage
93 );
94
95 NTSYSCALLAPI
96 NTSTATUS
97 NTAPI
98 NtCreateWaitablePort(
99 PHANDLE PortHandle,
100 POBJECT_ATTRIBUTES ObjectAttributes,
101 ULONG MaxConnectInfoLength,
102 ULONG MaxDataLength,
103 ULONG NPMessageQueueSize OPTIONAL
104 );
105
106 NTSYSCALLAPI
107 NTSTATUS
108 NTAPI
109 NtImpersonateClientOfPort(
110 HANDLE PortHandle,
111 PPORT_MESSAGE ClientMessage
112 );
113
114 NTSYSCALLAPI
115 NTSTATUS
116 NTAPI
117 NtListenPort(
118 HANDLE PortHandle,
119 PPORT_MESSAGE ConnectionRequest
120 );
121
122 NTSYSCALLAPI
123 NTSTATUS
124 NTAPI
125 NtQueryInformationPort(
126 HANDLE PortHandle,
127 PORT_INFORMATION_CLASS PortInformationClass,
128 PVOID PortInformation,
129 ULONG PortInformationLength,
130 PULONG ReturnLength
131 );
132
133 NTSTATUS
134 NTAPI
135 NtQueryPortInformationProcess(
136 VOID
137 );
138
139 NTSYSCALLAPI
140 NTSTATUS
141 NTAPI
142 NtReadRequestData(
143 HANDLE PortHandle,
144 PPORT_MESSAGE Message,
145 ULONG Index,
146 PVOID Buffer,
147 ULONG BufferLength,
148 PULONG ReturnLength
149 );
150
151 NTSYSCALLAPI
152 NTSTATUS
153 NTAPI
154 NtReplyPort(
155 IN HANDLE PortHandle,
156 IN PPORT_MESSAGE LpcReply
157 );
158
159 NTSYSCALLAPI
160 NTSTATUS
161 NTAPI
162 NtReplyWaitReceivePort(
163 IN HANDLE PortHandle,
164 OUT PVOID *PortContext OPTIONAL,
165 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
166 OUT PPORT_MESSAGE ReceiveMessage
167 );
168
169 NTSYSCALLAPI
170 NTSTATUS
171 NTAPI
172 NtReplyWaitReceivePortEx(
173 IN HANDLE PortHandle,
174 OUT PVOID *PortContext OPTIONAL,
175 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
176 OUT PPORT_MESSAGE ReceiveMessage,
177 IN PLARGE_INTEGER Timeout OPTIONAL
178 );
179
180 NTSYSCALLAPI
181 NTSTATUS
182 NTAPI
183 NtReplyWaitReplyPort(
184 IN HANDLE PortHandle,
185 OUT PPORT_MESSAGE ReplyMessage
186 );
187
188 NTSYSCALLAPI
189 NTSTATUS
190 NTAPI
191 NtRequestPort(
192 IN HANDLE PortHandle,
193 IN PPORT_MESSAGE LpcMessage
194 );
195
196 NTSYSCALLAPI
197 NTSTATUS
198 NTAPI
199 NtRequestWaitReplyPort(
200 IN HANDLE PortHandle,
201 OUT PPORT_MESSAGE LpcReply,
202 IN PPORT_MESSAGE LpcRequest
203 );
204
205 NTSYSCALLAPI
206 NTSTATUS
207 NTAPI
208 NtSecureConnectPort(
209 PHANDLE PortHandle,
210 PUNICODE_STRING PortName,
211 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
212 PPORT_VIEW ClientView OPTIONAL,
213 PSID Sid OPTIONAL,
214 PREMOTE_PORT_VIEW ServerView OPTIONAL,
215 PULONG MaxMessageLength OPTIONAL,
216 PVOID ConnectionInformation OPTIONAL,
217 PULONG ConnectionInformationLength OPTIONAL
218 );
219
220 NTSYSCALLAPI
221 NTSTATUS
222 NTAPI
223 NtWriteRequestData(
224 HANDLE PortHandle,
225 PPORT_MESSAGE Message,
226 ULONG Index,
227 PVOID Buffer,
228 ULONG BufferLength,
229 PULONG ReturnLength
230 );
231
232 NTSYSAPI
233 NTSTATUS
234 NTAPI
235 ZwAcceptConnectPort(
236 PHANDLE PortHandle,
237 PVOID PortContext OPTIONAL,
238 PPORT_MESSAGE ConnectionRequest,
239 BOOLEAN AcceptConnection,
240 PPORT_VIEW ServerView OPTIONAL,
241 PREMOTE_PORT_VIEW ClientView OPTIONAL
242 );
243
244 NTSYSAPI
245 NTSTATUS
246 NTAPI
247 ZwCompleteConnectPort(
248 HANDLE PortHandle
249 );
250
251 NTSYSAPI
252 NTSTATUS
253 NTAPI
254 ZwConnectPort(
255 PHANDLE PortHandle,
256 PUNICODE_STRING PortName,
257 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
258 PPORT_VIEW ClientView OPTIONAL,
259 PREMOTE_PORT_VIEW ServerView OPTIONAL,
260 PULONG MaxMessageLength OPTIONAL,
261 PVOID ConnectionInformation OPTIONAL,
262 PULONG ConnectionInformationLength OPTIONAL
263 );
264
265 NTSYSAPI
266 NTSTATUS
267 NTAPI
268 ZwCreatePort(
269 PHANDLE PortHandle,
270 POBJECT_ATTRIBUTES ObjectAttributes,
271 ULONG MaxConnectionInfoLength,
272 ULONG MaxMessageLength,
273 ULONG MaxPoolUsage
274 );
275
276 NTSYSAPI
277 NTSTATUS
278 NTAPI
279 ZwCreateWaitablePort(
280 PHANDLE PortHandle,
281 POBJECT_ATTRIBUTES ObjectAttributes,
282 ULONG MaxConnectInfoLength,
283 ULONG MaxDataLength,
284 ULONG NPMessageQueueSize OPTIONAL
285 );
286
287 NTSYSAPI
288 NTSTATUS
289 NTAPI
290 ZwImpersonateClientOfPort(
291 HANDLE PortHandle,
292 PPORT_MESSAGE ClientMessage
293 );
294
295 NTSYSAPI
296 NTSTATUS
297 NTAPI
298 ZwListenPort(
299 HANDLE PortHandle,
300 PPORT_MESSAGE ConnectionRequest
301 );
302
303 NTSYSAPI
304 NTSTATUS
305 NTAPI
306 ZwQueryInformationPort(
307 HANDLE PortHandle,
308 PORT_INFORMATION_CLASS PortInformationClass,
309 PVOID PortInformation,
310 ULONG PortInformationLength,
311 PULONG ReturnLength
312 );
313
314 NTSYSAPI
315 NTSTATUS
316 NTAPI
317 ZwReadRequestData(
318 HANDLE PortHandle,
319 PPORT_MESSAGE Message,
320 ULONG Index,
321 PVOID Buffer,
322 ULONG BufferLength,
323 PULONG ReturnLength
324 );
325
326 NTSYSAPI
327 NTSTATUS
328 NTAPI
329 ZwReplyPort(
330 IN HANDLE PortHandle,
331 IN PPORT_MESSAGE LpcReply
332 );
333
334 NTSYSAPI
335 NTSTATUS
336 NTAPI
337 ZwReplyWaitReceivePort(
338 IN HANDLE PortHandle,
339 OUT PVOID *PortContext OPTIONAL,
340 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
341 OUT PPORT_MESSAGE ReceiveMessage
342 );
343
344 NTSYSAPI
345 NTSTATUS
346 NTAPI
347 ZwReplyWaitReceivePortEx(
348 IN HANDLE PortHandle,
349 OUT PVOID *PortContext OPTIONAL,
350 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
351 OUT PPORT_MESSAGE ReceiveMessage,
352 IN PLARGE_INTEGER Timeout OPTIONAL
353 );
354
355 NTSYSAPI
356 NTSTATUS
357 NTAPI
358 ZwReplyWaitReplyPort(
359 IN HANDLE PortHandle,
360 OUT PPORT_MESSAGE ReplyMessage
361 );
362
363 NTSYSAPI
364 NTSTATUS
365 NTAPI
366 ZwRequestPort(
367 IN HANDLE PortHandle,
368 IN PPORT_MESSAGE LpcMessage
369 );
370
371 NTSYSAPI
372 NTSTATUS
373 NTAPI
374 ZwRequestWaitReplyPort(
375 IN HANDLE PortHandle,
376 OUT PPORT_MESSAGE LpcReply,
377 IN PPORT_MESSAGE LpcRequest
378 );
379
380 NTSYSAPI
381 NTSTATUS
382 NTAPI
383 ZwSecureConnectPort(
384 PHANDLE PortHandle,
385 PUNICODE_STRING PortName,
386 PSECURITY_QUALITY_OF_SERVICE SecurityQos,
387 PPORT_VIEW ClientView OPTIONAL,
388 PSID Sid OPTIONAL,
389 PREMOTE_PORT_VIEW ServerView OPTIONAL,
390 PULONG MaxMessageLength OPTIONAL,
391 PVOID ConnectionInformation OPTIONAL,
392 PULONG ConnectionInformationLength OPTIONAL
393 );
394
395 NTSYSAPI
396 NTSTATUS
397 NTAPI
398 ZwWriteRequestData(
399 HANDLE PortHandle,
400 PPORT_MESSAGE Message,
401 ULONG Index,
402 PVOID Buffer,
403 ULONG BufferLength,
404 PULONG ReturnLength
405 );
406
407 #endif