e293fb49e0b919bef2d5e1c8690138bf52491c95
[reactos.git] / reactos / include / ndk / lpctypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/lpctypes.h
4 * PURPOSE: Definitions for Local Procedure Call Types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _LPCTYPES_H
10 #define _LPCTYPES_H
11
12 /* DEPENDENCIES **************************************************************/
13
14 /* EXPORTED DATA *************************************************************/
15
16 /* CONSTANTS *****************************************************************/
17 #define LPC_MESSAGE_BASE_SIZE 24
18 #define MAX_MESSAGE_DATA (0x130)
19 #define PORT_MAX_DATA_LENGTH 0x104
20 #define PORT_MAX_MESSAGE_LENGTH 0x148
21
22 /* ENUMERATIONS **************************************************************/
23
24 typedef enum _LPC_TYPE
25 {
26 LPC_NEW_MESSAGE,
27 LPC_REQUEST,
28 LPC_REPLY,
29 LPC_DATAGRAM,
30 LPC_LOST_REPLY,
31 LPC_PORT_CLOSED,
32 LPC_CLIENT_DIED,
33 LPC_EXCEPTION,
34 LPC_DEBUG_EVENT,
35 LPC_ERROR_EVENT,
36 LPC_CONNECTION_REQUEST,
37 LPC_CONNECTION_REFUSED,
38 LPC_MAXIMUM
39 } LPC_TYPE;
40
41 /* TYPES *********************************************************************/
42
43 /* FIXME: USE REAL DEFINITION */
44 typedef struct _LPC_MESSAGE
45 {
46 USHORT DataSize;
47 USHORT MessageSize;
48 USHORT MessageType;
49 USHORT VirtualRangesOffset;
50 CLIENT_ID ClientId;
51 ULONG MessageId;
52 ULONG SectionSize;
53 } LPC_MESSAGE, *PLPC_MESSAGE;
54
55 /* FIXME: USE REAL DEFINITION */
56 typedef struct _LPC_SECTION_WRITE
57 {
58 ULONG Length;
59 HANDLE SectionHandle;
60 ULONG SectionOffset;
61 ULONG ViewSize;
62 PVOID ViewBase;
63 PVOID TargetViewBase;
64 } LPC_SECTION_WRITE, *PLPC_SECTION_WRITE;
65
66 /* FIXME: USE REAL DEFINITION */
67 typedef struct _LPC_SECTION_READ
68 {
69 ULONG Length;
70 ULONG ViewSize;
71 PVOID ViewBase;
72 } LPC_SECTION_READ, *PLPC_SECTION_READ;
73
74 /* FIXME: USE REAL DEFINITION */
75 typedef struct _LPC_MAX_MESSAGE
76 {
77 LPC_MESSAGE Header;
78 BYTE Data[MAX_MESSAGE_DATA];
79 } LPC_MAX_MESSAGE, *PLPC_MAX_MESSAGE;
80
81 #endif