ReactOS 0.4.15-dev-7918-g2a2556c
lpcfuncs.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 lpcfuncs.h
8
9Abstract:
10
11 Function definitions for the Local Procedure Call.
12
13Author:
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#include <lpctypes.h>
27
28//
29// LPC Exports
30//
31#ifndef NTOS_MODE_USER
37 _In_ PPORT_MESSAGE LpcMessageRequest,
38 _Out_ PPORT_MESSAGE LpcMessageReply
39);
40
45 _In_ PPORT_MESSAGE LpcMessage
46);
47#endif
48
49//
50// Native calls
51//
56 _Out_ PHANDLE PortHandle,
57 _In_opt_ PVOID PortContext,
58 _In_ PPORT_MESSAGE ConnectionRequest,
59 _In_ BOOLEAN AcceptConnection,
60 _Inout_opt_ PPORT_VIEW ServerView,
62);
63
68 _In_ HANDLE PortHandle
69);
70
75 _Out_ PHANDLE PortHandle,
78 _Inout_opt_ PPORT_VIEW ClientView,
80 _Out_opt_ PULONG MaxMessageLength,
81 _Inout_opt_ PVOID ConnectionInformation,
82 _Inout_opt_ PULONG ConnectionInformationLength
83);
84
89 _Out_ PHANDLE PortHandle,
91 _In_ ULONG MaxConnectionInfoLength,
92 _In_ ULONG MaxMessageLength,
93 _In_ ULONG MaxPoolUsage
94);
95
100 _Out_ PHANDLE PortHandle,
102 _In_ ULONG MaxConnectInfoLength,
103 _In_ ULONG MaxDataLength,
104 _In_opt_ ULONG NPMessageQueueSize
105);
106
109NTAPI
111 _In_ HANDLE PortHandle,
112 _In_ PPORT_MESSAGE ClientMessage
113);
114
117NTAPI
119 _In_ HANDLE PortHandle,
120 _In_ PPORT_MESSAGE ConnectionRequest
121);
122
125NTAPI
127 _In_ HANDLE PortHandle,
132);
133
135NTAPI
137 VOID
138);
139
142NTAPI
144 _In_ HANDLE PortHandle,
150);
151
154NTAPI
156 _In_ HANDLE PortHandle,
157 _In_ PPORT_MESSAGE LpcReply
158);
159
162NTAPI
164 _In_ HANDLE PortHandle,
165 _Out_opt_ PVOID *PortContext,
167 _Out_ PPORT_MESSAGE ReceiveMessage
168);
169
172NTAPI
174 _In_ HANDLE PortHandle,
175 _Out_opt_ PVOID *PortContext,
177 _Out_ PPORT_MESSAGE ReceiveMessage,
179);
180
183NTAPI
185 _In_ HANDLE PortHandle,
187);
188
191NTAPI
193 _In_ HANDLE PortHandle,
194 _In_ PPORT_MESSAGE LpcMessage
195);
196
199NTAPI
201 _In_ HANDLE PortHandle,
202 _Out_ PPORT_MESSAGE LpcReply,
203 _In_ PPORT_MESSAGE LpcRequest
204);
205
208NTAPI
210 _Out_ PHANDLE PortHandle,
213 _Inout_opt_ PPORT_VIEW ClientView,
214 _In_opt_ PSID ServerSid,
216 _Out_opt_ PULONG MaxMessageLength,
217 _Inout_opt_ PVOID ConnectionInformation,
218 _Inout_opt_ PULONG ConnectionInformationLength
219);
220
223NTAPI
225 _In_ HANDLE PortHandle,
231);
232
235NTAPI
237 _Out_ PHANDLE PortHandle,
238 _In_opt_ PVOID PortContext,
239 _In_ PPORT_MESSAGE ConnectionRequest,
240 _In_ BOOLEAN AcceptConnection,
241 _In_opt_ PPORT_VIEW ServerView,
242 _In_opt_ PREMOTE_PORT_VIEW ClientView
243);
244
247NTAPI
249 _In_ HANDLE PortHandle
250);
251
254NTAPI
256 _Out_ PHANDLE PortHandle,
259 _In_opt_ PPORT_VIEW ClientView,
260 _In_opt_ PREMOTE_PORT_VIEW ServerView,
261 _In_opt_ PULONG MaxMessageLength,
262 _In_opt_ PVOID ConnectionInformation,
263 _In_opt_ PULONG ConnectionInformationLength
264);
265
268NTAPI
270 _Out_ PHANDLE PortHandle,
272 _In_ ULONG MaxConnectionInfoLength,
273 _In_ ULONG MaxMessageLength,
274 _In_ ULONG MaxPoolUsage
275);
276
279NTAPI
281 _Out_ PHANDLE PortHandle,
283 _In_ ULONG MaxConnectInfoLength,
284 _In_ ULONG MaxDataLength,
285 _In_opt_ ULONG NPMessageQueueSize
286);
287
290NTAPI
292 _In_ HANDLE PortHandle,
293 _In_ PPORT_MESSAGE ClientMessage
294);
295
298NTAPI
300 _In_ HANDLE PortHandle,
301 _In_ PPORT_MESSAGE ConnectionRequest
302);
303
306NTAPI
308 _In_ HANDLE PortHandle,
313);
314
317NTAPI
319 _In_ HANDLE PortHandle,
325);
326
329NTAPI
331 _In_ HANDLE PortHandle,
332 _In_ PPORT_MESSAGE LpcReply
333);
334
337NTAPI
339 _In_ HANDLE PortHandle,
340 _Out_opt_ PVOID *PortContext,
342 _Out_ PPORT_MESSAGE ReceiveMessage
343);
344
347NTAPI
349 _In_ HANDLE PortHandle,
350 _Out_opt_ PVOID *PortContext,
352 _Out_ PPORT_MESSAGE ReceiveMessage,
354);
355
358NTAPI
360 _In_ HANDLE PortHandle,
362);
363
366NTAPI
368 _In_ HANDLE PortHandle,
369 _In_ PPORT_MESSAGE LpcMessage
370);
371
374NTAPI
376 _In_ HANDLE PortHandle,
377 _Out_ PPORT_MESSAGE LpcReply,
378 _In_ PPORT_MESSAGE LpcRequest
379);
380
383NTAPI
385 _Out_ PHANDLE PortHandle,
388 _Inout_opt_ PPORT_VIEW ClientView,
391 _Out_opt_ PULONG MaxMessageLength,
392 _Inout_opt_ PVOID ConnectionInformation,
393 _Inout_opt_ PULONG ConnectionInformationLength
394);
395
398NTAPI
400 _In_ HANDLE PortHandle,
406);
407
408#endif
static UNICODE_STRING PortName
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
#define NTSYSAPI
Definition: ntoskrnl.h:12
Definition: bufpool.h:45
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
static const WCHAR Message[]
Definition: register.c:74
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
Definition: dumpinfo.c:43
IN CINT OUT PVOID IN ULONG PortInformationLength
Definition: dumpinfo.c:41
IN CINT OUT PVOID PortInformation
Definition: dumpinfo.c:40
IN CINT PortInformationClass
Definition: dumpinfo.c:39
CPPORT Port[4]
Definition: headless.c:35
NTSYSCALLAPI NTSTATUS NTAPI NtReplyWaitReceivePort(_In_ HANDLE PortHandle, _Out_opt_ PVOID *PortContext, _In_opt_ PPORT_MESSAGE ReplyMessage, _Out_ PPORT_MESSAGE ReceiveMessage)
NTSYSAPI NTSTATUS NTAPI ZwCreateWaitablePort(_Out_ PHANDLE PortHandle, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG MaxConnectInfoLength, _In_ ULONG MaxDataLength, _In_opt_ ULONG NPMessageQueueSize)
NTSYSCALLAPI NTSTATUS NTAPI NtSecureConnectPort(_Out_ PHANDLE PortHandle, _In_ PUNICODE_STRING PortName, _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos, _Inout_opt_ PPORT_VIEW ClientView, _In_opt_ PSID ServerSid, _Inout_opt_ PREMOTE_PORT_VIEW ServerView, _Out_opt_ PULONG MaxMessageLength, _Inout_opt_ PVOID ConnectionInformation, _Inout_opt_ PULONG ConnectionInformationLength)
NTSYSCALLAPI NTSTATUS NTAPI NtReplyPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE LpcReply)
NTSYSAPI NTSTATUS NTAPI ZwImpersonateClientOfPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE ClientMessage)
NTSYSAPI NTSTATUS NTAPI ZwWriteRequestData(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE Message, _In_ ULONG Index, _In_bytecount_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength, _Out_ PULONG ReturnLength)
NTSYSCALLAPI NTSTATUS NTAPI NtCompleteConnectPort(_In_ HANDLE PortHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtListenPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE ConnectionRequest)
NTSYSAPI NTSTATUS NTAPI ZwRequestPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE LpcMessage)
NTSYSAPI NTSTATUS NTAPI ZwReplyWaitReplyPort(_In_ HANDLE PortHandle, _Out_ PPORT_MESSAGE ReplyMessage)
NTSYSCALLAPI NTSTATUS NTAPI NtReplyWaitReceivePortEx(_In_ HANDLE PortHandle, _Out_opt_ PVOID *PortContext, _In_opt_ PPORT_MESSAGE ReplyMessage, _Out_ PPORT_MESSAGE ReceiveMessage, _In_opt_ PLARGE_INTEGER Timeout)
NTSYSCALLAPI NTSTATUS NTAPI NtCreateWaitablePort(_Out_ PHANDLE PortHandle, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG MaxConnectInfoLength, _In_ ULONG MaxDataLength, _In_opt_ ULONG NPMessageQueueSize)
NTSYSAPI NTSTATUS NTAPI ZwSecureConnectPort(_Out_ PHANDLE PortHandle, _In_ PUNICODE_STRING PortName, _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos, _Inout_opt_ PPORT_VIEW ClientView, _In_opt_ PSID Sid, _Inout_opt_ PREMOTE_PORT_VIEW ServerView, _Out_opt_ PULONG MaxMessageLength, _Inout_opt_ PVOID ConnectionInformation, _Inout_opt_ PULONG ConnectionInformationLength)
NTSYSCALLAPI NTSTATUS NTAPI NtRequestPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE LpcMessage)
NTSYSAPI NTSTATUS NTAPI ZwReplyPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE LpcReply)
NTSYSCALLAPI NTSTATUS NTAPI NtReadRequestData(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE Message, _In_ ULONG Index, _Out_bytecap_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength, _Out_ PULONG ReturnLength)
NTSYSAPI NTSTATUS NTAPI ZwListenPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE ConnectionRequest)
NTSYSAPI NTSTATUS NTAPI ZwReplyWaitReceivePort(_In_ HANDLE PortHandle, _Out_opt_ PVOID *PortContext, _In_opt_ PPORT_MESSAGE ReplyMessage, _Out_ PPORT_MESSAGE ReceiveMessage)
NTSYSAPI NTSTATUS NTAPI ZwQueryInformationPort(_In_ HANDLE PortHandle, _In_ PORT_INFORMATION_CLASS PortInformationClass, _Out_bytecap_(PortInformationLength) PVOID PortInformation, _In_ ULONG PortInformationLength, _Out_ PULONG ReturnLength)
NTSYSCALLAPI NTSTATUS NTAPI NtRequestWaitReplyPort(_In_ HANDLE PortHandle, _Out_ PPORT_MESSAGE LpcReply, _In_ PPORT_MESSAGE LpcRequest)
NTSTATUS NTAPI LpcRequestPort(_In_ PVOID Port, _In_ PPORT_MESSAGE LpcMessage)
NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationPort(_In_ HANDLE PortHandle, _In_ PORT_INFORMATION_CLASS PortInformationClass, _Out_bytecap_(PortInformationLength) PVOID PortInformation, _In_ ULONG PortInformationLength, _Out_ PULONG ReturnLength)
NTKERNELAPI NTSTATUS NTAPI LpcRequestWaitReplyPort(_In_ PVOID Port, _In_ PPORT_MESSAGE LpcMessageRequest, _Out_ PPORT_MESSAGE LpcMessageReply)
NTSYSCALLAPI NTSTATUS NTAPI NtReplyWaitReplyPort(_In_ HANDLE PortHandle, _Out_ PPORT_MESSAGE ReplyMessage)
NTSYSAPI NTSTATUS NTAPI ZwAcceptConnectPort(_Out_ PHANDLE PortHandle, _In_opt_ PVOID PortContext, _In_ PPORT_MESSAGE ConnectionRequest, _In_ BOOLEAN AcceptConnection, _In_opt_ PPORT_VIEW ServerView, _In_opt_ PREMOTE_PORT_VIEW ClientView)
NTSYSAPI NTSTATUS NTAPI ZwReadRequestData(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE Message, _In_ ULONG Index, _Out_bytecap_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength, _Out_ PULONG ReturnLength)
NTSYSAPI NTSTATUS NTAPI ZwCreatePort(_Out_ PHANDLE PortHandle, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG MaxConnectionInfoLength, _In_ ULONG MaxMessageLength, _In_ ULONG MaxPoolUsage)
NTSYSAPI NTSTATUS NTAPI ZwRequestWaitReplyPort(_In_ HANDLE PortHandle, _Out_ PPORT_MESSAGE LpcReply, _In_ PPORT_MESSAGE LpcRequest)
NTSYSCALLAPI NTSTATUS NTAPI NtWriteRequestData(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE Message, _In_ ULONG Index, _In_bytecount_(BufferLength) PVOID Buffer, _In_ ULONG BufferLength, _Out_ PULONG ReturnLength)
NTSYSCALLAPI NTSTATUS NTAPI NtImpersonateClientOfPort(_In_ HANDLE PortHandle, _In_ PPORT_MESSAGE ClientMessage)
NTSYSCALLAPI NTSTATUS NTAPI NtAcceptConnectPort(_Out_ PHANDLE PortHandle, _In_opt_ PVOID PortContext, _In_ PPORT_MESSAGE ConnectionRequest, _In_ BOOLEAN AcceptConnection, _Inout_opt_ PPORT_VIEW ServerView, _Out_opt_ PREMOTE_PORT_VIEW ClientView)
NTSYSCALLAPI NTSTATUS NTAPI NtConnectPort(_Out_ PHANDLE PortHandle, _In_ PUNICODE_STRING PortName, _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos, _Inout_opt_ PPORT_VIEW ClientView, _Inout_opt_ PREMOTE_PORT_VIEW ServerView, _Out_opt_ PULONG MaxMessageLength, _Inout_opt_ PVOID ConnectionInformation, _Inout_opt_ PULONG ConnectionInformationLength)
NTSTATUS NTAPI NtQueryPortInformationProcess(VOID)
Definition: port.c:277
NTSYSCALLAPI NTSTATUS NTAPI NtCreatePort(_Out_ PHANDLE PortHandle, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ ULONG MaxConnectionInfoLength, _In_ ULONG MaxMessageLength, _In_ ULONG MaxPoolUsage)
NTSYSAPI NTSTATUS NTAPI ZwConnectPort(_Out_ PHANDLE PortHandle, _In_ PUNICODE_STRING PortName, _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos, _In_opt_ PPORT_VIEW ClientView, _In_opt_ PREMOTE_PORT_VIEW ServerView, _In_opt_ PULONG MaxMessageLength, _In_opt_ PVOID ConnectionInformation, _In_opt_ PULONG ConnectionInformationLength)
NTSYSAPI NTSTATUS NTAPI ZwCompleteConnectPort(_In_ HANDLE PortHandle)
NTSYSAPI NTSTATUS NTAPI ZwReplyWaitReceivePortEx(_In_ HANDLE PortHandle, _Out_opt_ PVOID *PortContext, _In_opt_ PPORT_MESSAGE ReplyMessage, _Out_ PPORT_MESSAGE ReceiveMessage, _In_opt_ PLARGE_INTEGER Timeout)
enum _PORT_INFORMATION_CLASS PORT_INFORMATION_CLASS
#define _Out_opt_
Definition: ms_sal.h:346
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
#define _Out_bytecap_(size)
Definition: ms_sal.h:854
#define _In_bytecount_(size)
Definition: ms_sal.h:812
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1133
#define NTSYSCALLAPI
Definition: ntbasedef.h:204
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
static ULONG Timeout
Definition: ping.c:61
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
#define NTKERNELAPI
BOOL WINAPI ReplyMessage(_In_ LRESULT)