a9705db0c5f82c1fc74e39ce23302ff7556cacad
[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 USHORT DataSize;
46 USHORT MessageSize;
47 USHORT MessageType;
48 USHORT VirtualRangesOffset;
49 CLIENT_ID ClientId;
50 ULONG MessageId;
51 ULONG SectionSize;
52 } LPC_MESSAGE, *PLPC_MESSAGE;
53
54 /* FIXME: USE REAL DEFINITION */
55 typedef struct _LPC_SECTION_WRITE
56 {
57 ULONG Length;
58 HANDLE SectionHandle;
59 ULONG SectionOffset;
60 ULONG ViewSize;
61 PVOID ViewBase;
62 PVOID TargetViewBase;
63 } LPC_SECTION_WRITE, *PLPC_SECTION_WRITE;
64
65 /* FIXME: USE REAL DEFINITION */
66 typedef struct _LPC_SECTION_READ
67 {
68 ULONG Length;
69 ULONG ViewSize;
70 PVOID ViewBase;
71 } LPC_SECTION_READ, *PLPC_SECTION_READ;
72
73 /* FIXME: USE REAL DEFINITION */
74 typedef struct _LPC_MAX_MESSAGE
75 {
76 LPC_MESSAGE Header;
77 BYTE Data[MAX_MESSAGE_DATA];
78 } LPC_MAX_MESSAGE, *PLPC_MAX_MESSAGE;
79
80 #endif