[WINSRV/WIN32CSR]
[reactos.git] / include / reactos / subsys / csr / csrss.h
1 /***************************** CSRSS Data ***********************************/
2
3 #ifndef __INCLUDE_CSRSS_CSRSS_H
4 #define __INCLUDE_CSRSS_CSRSS_H
5
6 #define CSR_NATIVE 0x0000 // CSRSRV
7 #define CSR_CONSOLE 0x0001 // WIN32CSR
8 #define CSR_GUI 0x0002 // WINSRV
9 #define CONSOLE_INPUT_MODE_VALID (0x0f)
10 #define CONSOLE_OUTPUT_MODE_VALID (0x03)
11
12
13 #define CSR_CSRSS_SECTION_SIZE (65536)
14
15 typedef VOID (CALLBACK *PCONTROLDISPATCHER)(DWORD);
16
17 typedef struct
18 {
19 USHORT nMaxIds;
20 PDWORD ProcessId;
21 ULONG nProcessIdsTotal;
22 } CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;
23
24 typedef struct
25 {
26 HANDLE UniqueThread;
27 CLIENT_ID Cid;
28 } CSRSS_IDENTIFY_ALERTABLE_THREAD, *PCSRSS_IDENTIFY_ALERTABLE_THREAD;
29
30 typedef struct
31 {
32 HANDLE ProcessId;
33 } CSRSS_REGISTER_SERVICES_PROCESS, *PCSRSS_REGISTER_SERVICES_PROCESS;
34
35 typedef struct
36 {
37 UINT Flags;
38 DWORD Reserved;
39 } CSRSS_EXIT_REACTOS, *PCSRSS_EXIT_REACTOS;
40
41 typedef struct
42 {
43 HANDLE Handle;
44 } CSRSS_CLOSE_HANDLE, *PCSRSS_CLOSE_HANDLE;
45
46 typedef struct
47 {
48 HANDLE Handle;
49 } CSRSS_VERIFY_HANDLE, *PCSRSS_VERIFY_HANDLE;
50
51 typedef struct
52 {
53 HANDLE Handle;
54 DWORD Access;
55 BOOL Inheritable;
56 DWORD Options;
57 } CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
58
59 typedef struct
60 {
61 HDESK DesktopHandle;
62 } CSRSS_CREATE_DESKTOP, *PCSRSS_CREATE_DESKTOP;
63
64 typedef struct
65 {
66 HWND DesktopWindow;
67 ULONG Width;
68 ULONG Height;
69 } CSRSS_SHOW_DESKTOP, *PCSRSS_SHOW_DESKTOP;
70
71 typedef struct
72 {
73 HWND DesktopWindow;
74 } CSRSS_HIDE_DESKTOP, *PCSRSS_HIDE_DESKTOP;
75
76 typedef struct
77 {
78 HWND LogonNotifyWindow;
79 } CSRSS_SET_LOGON_NOTIFY_WINDOW, *PCSRSS_SET_LOGON_NOTIFY_WINDOW;
80
81 typedef struct
82 {
83 HANDLE ProcessId;
84 BOOL Register;
85 } CSRSS_REGISTER_LOGON_PROCESS, *PCSRSS_REGISTER_LOGON_PROCESS;
86
87 typedef struct
88 {
89 HANDLE InputWaitHandle;
90 } CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
91
92 #define CSR_API_MESSAGE_HEADER_SIZE(Type) (FIELD_OFFSET(CSR_API_MESSAGE, Data) + sizeof(Type))
93
94 #define REGISTER_SERVICES_PROCESS (0x1D)
95 #define EXIT_REACTOS (0x1E)
96 #define CLOSE_HANDLE (0x26)
97 #define VERIFY_HANDLE (0x27)
98 #define DUPLICATE_HANDLE (0x28)
99
100 #define CREATE_DESKTOP (0x2B)
101 #define SHOW_DESKTOP (0x2C)
102 #define HIDE_DESKTOP (0x2D)
103
104 #define SET_LOGON_NOTIFY_WINDOW (0x2F)
105 #define REGISTER_LOGON_PROCESS (0x30)
106 #define GET_INPUT_WAIT_HANDLE (0x35)
107 #define GET_PROCESS_LIST (0x36)
108 #define START_SCREEN_SAVER (0x37)
109
110
111 #endif /* __INCLUDE_CSRSS_CSRSS_H */