3 Copyright (c) Alex Ionescu. All rights reserved.
11 Function definitions for the Executive.
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
30 #ifndef NTOS_MODE_USER
34 LpcRequestWaitReplyPort(
36 _In_ PPORT_MESSAGE LpcMessageRequest
,
37 _Out_ PPORT_MESSAGE LpcMessageReply
44 _In_ PPORT_MESSAGE LpcMessage
55 _Out_ PHANDLE PortHandle
,
56 _In_opt_ PVOID PortContext
,
57 _In_ PPORT_MESSAGE ConnectionRequest
,
58 _In_ BOOLEAN AcceptConnection
,
59 _In_opt_ PPORT_VIEW ServerView
,
60 _In_opt_ PREMOTE_PORT_VIEW ClientView
66 NtCompleteConnectPort(
67 _In_ HANDLE PortHandle
74 _Out_ PHANDLE PortHandle
,
75 _In_ PUNICODE_STRING PortName
,
76 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos
,
77 _In_opt_ PPORT_VIEW ClientView
,
78 _In_opt_ PREMOTE_PORT_VIEW ServerView
,
79 _In_opt_ PULONG MaxMessageLength
,
80 _In_opt_ PVOID ConnectionInformation
,
81 _In_opt_ PULONG ConnectionInformationLength
88 _Out_ PHANDLE PortHandle
,
89 _In_ POBJECT_ATTRIBUTES ObjectAttributes
,
90 _In_ ULONG MaxConnectionInfoLength
,
91 _In_ ULONG MaxMessageLength
,
92 _In_ ULONG MaxPoolUsage
99 _Out_ PHANDLE PortHandle
,
100 _In_ POBJECT_ATTRIBUTES ObjectAttributes
,
101 _In_ ULONG MaxConnectInfoLength
,
102 _In_ ULONG MaxDataLength
,
103 _In_opt_ ULONG NPMessageQueueSize
109 NtImpersonateClientOfPort(
110 _In_ HANDLE PortHandle
,
111 _In_ PPORT_MESSAGE ClientMessage
118 _In_ HANDLE PortHandle
,
119 _In_ PPORT_MESSAGE ConnectionRequest
125 NtQueryInformationPort(
126 _In_ HANDLE PortHandle
,
127 _In_ PORT_INFORMATION_CLASS PortInformationClass
,
128 _Out_bytecap_(PortInformationLength
) PVOID PortInformation
,
129 _In_ ULONG PortInformationLength
,
130 _Out_ PULONG ReturnLength
135 NtQueryPortInformationProcess(
143 _In_ HANDLE PortHandle
,
144 _In_ PPORT_MESSAGE Message
,
146 _Out_bytecap_(BufferLength
) PVOID Buffer
,
147 _In_ ULONG BufferLength
,
148 _Out_ PULONG ReturnLength
155 _In_ HANDLE PortHandle
,
156 _In_ PPORT_MESSAGE LpcReply
162 NtReplyWaitReceivePort(
163 _In_ HANDLE PortHandle
,
164 _Out_opt_ PVOID
*PortContext
,
165 _In_opt_ PPORT_MESSAGE ReplyMessage
,
166 _Out_ PPORT_MESSAGE ReceiveMessage
172 NtReplyWaitReceivePortEx(
173 _In_ HANDLE PortHandle
,
174 _Out_opt_ PVOID
*PortContext
,
175 _In_opt_ PPORT_MESSAGE ReplyMessage
,
176 _Out_ PPORT_MESSAGE ReceiveMessage
,
177 _In_opt_ PLARGE_INTEGER Timeout
183 NtReplyWaitReplyPort(
184 _In_ HANDLE PortHandle
,
185 _Out_ PPORT_MESSAGE ReplyMessage
192 _In_ HANDLE PortHandle
,
193 _In_ PPORT_MESSAGE LpcMessage
199 NtRequestWaitReplyPort(
200 _In_ HANDLE PortHandle
,
201 _Out_ PPORT_MESSAGE LpcReply
,
202 _In_ PPORT_MESSAGE LpcRequest
209 _Out_ PHANDLE PortHandle
,
210 _In_ PUNICODE_STRING PortName
,
211 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos
,
212 _In_opt_ PPORT_VIEW ClientView
,
214 _In_opt_ PREMOTE_PORT_VIEW ServerView
,
215 _In_opt_ PULONG MaxMessageLength
,
216 _In_opt_ PVOID ConnectionInformation
,
217 _Out_opt_ PULONG ConnectionInformationLength
224 _In_ HANDLE PortHandle
,
225 _In_ PPORT_MESSAGE Message
,
227 _In_bytecount_(BufferLength
) PVOID Buffer
,
228 _In_ ULONG BufferLength
,
229 _Out_ PULONG ReturnLength
236 _Out_ PHANDLE PortHandle
,
237 _In_opt_ PVOID PortContext
,
238 _In_ PPORT_MESSAGE ConnectionRequest
,
239 _In_ BOOLEAN AcceptConnection
,
240 _In_opt_ PPORT_VIEW ServerView
,
241 _In_opt_ PREMOTE_PORT_VIEW ClientView
247 ZwCompleteConnectPort(
248 _In_ HANDLE PortHandle
255 _Out_ PHANDLE PortHandle
,
256 _In_ PUNICODE_STRING PortName
,
257 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos
,
258 _In_opt_ PPORT_VIEW ClientView
,
259 _In_opt_ PREMOTE_PORT_VIEW ServerView
,
260 _In_opt_ PULONG MaxMessageLength
,
261 _In_opt_ PVOID ConnectionInformation
,
262 _In_opt_ PULONG ConnectionInformationLength
269 _Out_ PHANDLE PortHandle
,
270 _In_ POBJECT_ATTRIBUTES ObjectAttributes
,
271 _In_ ULONG MaxConnectionInfoLength
,
272 _In_ ULONG MaxMessageLength
,
273 _In_ ULONG MaxPoolUsage
279 ZwCreateWaitablePort(
280 _Out_ PHANDLE PortHandle
,
281 _In_ POBJECT_ATTRIBUTES ObjectAttributes
,
282 _In_ ULONG MaxConnectInfoLength
,
283 _In_ ULONG MaxDataLength
,
284 _In_opt_ ULONG NPMessageQueueSize
290 ZwImpersonateClientOfPort(
291 _In_ HANDLE PortHandle
,
292 _In_ PPORT_MESSAGE ClientMessage
299 _In_ HANDLE PortHandle
,
300 _In_ PPORT_MESSAGE ConnectionRequest
306 ZwQueryInformationPort(
307 _In_ HANDLE PortHandle
,
308 _In_ PORT_INFORMATION_CLASS PortInformationClass
,
309 _Out_bytecap_(PortInformationLength
) PVOID PortInformation
,
310 _In_ ULONG PortInformationLength
,
311 _Out_ PULONG ReturnLength
318 _In_ HANDLE PortHandle
,
319 _In_ PPORT_MESSAGE Message
,
321 _Out_bytecap_(BufferLength
) PVOID Buffer
,
322 _In_ ULONG BufferLength
,
323 _Out_ PULONG ReturnLength
330 _In_ HANDLE PortHandle
,
331 _In_ PPORT_MESSAGE LpcReply
337 ZwReplyWaitReceivePort(
338 _In_ HANDLE PortHandle
,
339 _Out_opt_ PVOID
*PortContext
,
340 _In_opt_ PPORT_MESSAGE ReplyMessage
,
341 _Out_ PPORT_MESSAGE ReceiveMessage
347 ZwReplyWaitReceivePortEx(
348 _In_ HANDLE PortHandle
,
349 _Out_opt_ PVOID
*PortContext
,
350 _In_opt_ PPORT_MESSAGE ReplyMessage
,
351 _Out_ PPORT_MESSAGE ReceiveMessage
,
352 _In_opt_ PLARGE_INTEGER Timeout
358 ZwReplyWaitReplyPort(
359 _In_ HANDLE PortHandle
,
360 _Out_ PPORT_MESSAGE ReplyMessage
367 _In_ HANDLE PortHandle
,
368 _In_ PPORT_MESSAGE LpcMessage
374 ZwRequestWaitReplyPort(
375 _In_ HANDLE PortHandle
,
376 _Out_ PPORT_MESSAGE LpcReply
,
377 _In_ PPORT_MESSAGE LpcRequest
384 _Out_ PHANDLE PortHandle
,
385 _In_ PUNICODE_STRING PortName
,
386 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQos
,
387 _Inout_opt_ PPORT_VIEW ClientView
,
389 _Inout_opt_ PREMOTE_PORT_VIEW ServerView
,
390 _Out_opt_ PULONG MaxMessageLength
,
391 _Inout_opt_ PVOID ConnectionInformation
,
392 _Inout_opt_ PULONG ConnectionInformationLength
399 _In_ HANDLE PortHandle
,
400 _In_ PPORT_MESSAGE Message
,
402 _In_bytecount_(BufferLength
) PVOID Buffer
,
403 _In_ ULONG BufferLength
,
404 _Out_ PULONG ReturnLength