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