94bc8ebdbc65c4731d69e5d604164c7f1ea49522
[reactos.git] / include / reactos / subsys / win / winmsg.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Client/Server Runtime SubSystem
4 * FILE: include/reactos/subsys/win/winmsg.h
5 * PURPOSE: Public definitions for communication
6 * between User-Mode API Clients and Servers
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
8 */
9
10 #ifndef _WINMSG_H
11 #define _WINMSG_H
12
13 #pragma once
14
15 #define USERSRV_SERVERDLL_INDEX 3
16 #define USERSRV_FIRST_API_NUMBER 1024
17
18 // CSR_SERVER_DLL_INIT(UserServerDllInitialization);
19
20 typedef enum _USERSRV_API_NUMBER
21 {
22 UserpExitWindowsEx = USERSRV_FIRST_API_NUMBER,
23 // UserpEndTask,
24 // UserpLogon,
25 UserpRegisterServicesProcess, // Not present in Win7
26 // UserpActivateDebugger,
27 // UserpGetThreadConsoleDesktop, // Not present in Win7
28 // UserpDeviceEvent,
29 UserpRegisterLogonProcess, // Not present in Win7
30 // UserpCreateSystemThreads,
31 // UserpRecordShutdownReason,
32 // UserpCancelShutdown, // Added in Vista
33 // UserpConsoleHandleOperation, // Added in Win7
34 // UserpGetSetShutdownBlockReason, // Added in Vista
35
36 UserpMaxApiNumber
37 } USERSRV_API_NUMBER, *PUSERSRV_API_NUMBER;
38
39
40 typedef struct
41 {
42 UINT Flags;
43 DWORD Reserved;
44 } CSRSS_EXIT_REACTOS, *PCSRSS_EXIT_REACTOS;
45
46 typedef struct
47 {
48 ULONG_PTR ProcessId;
49 } CSRSS_REGISTER_SERVICES_PROCESS, *PCSRSS_REGISTER_SERVICES_PROCESS;
50
51 typedef struct
52 {
53 ULONG_PTR ProcessId;
54 BOOL Register;
55 } CSRSS_REGISTER_LOGON_PROCESS, *PCSRSS_REGISTER_LOGON_PROCESS;
56
57 typedef struct
58 {
59 HWND LogonNotifyWindow;
60 } CSRSS_SET_LOGON_NOTIFY_WINDOW, *PCSRSS_SET_LOGON_NOTIFY_WINDOW;
61
62
63 typedef struct _USER_API_MESSAGE
64 {
65 PORT_MESSAGE Header;
66
67 PCSR_CAPTURE_BUFFER CsrCaptureData;
68 CSR_API_NUMBER ApiNumber;
69 ULONG Status; // ReturnValue; // NTSTATUS Status
70 ULONG Reserved;
71 union
72 {
73 CSRSS_EXIT_REACTOS ExitReactosRequest;
74 CSRSS_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
75 CSRSS_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
76 CSRSS_SET_LOGON_NOTIFY_WINDOW SetLogonNotifyWindowRequest;
77 } Data;
78 } USER_API_MESSAGE, *PUSER_API_MESSAGE;
79
80 #endif // _WINMSG_H
81
82 /* EOF */