Large change to modify NTDLL'S CSR Functions to be compatible with NT. They are external and we should at least try to match the number of arguments (one vs eight? come on!). Because this is also the direction that Emanuele wants to be taking, the whole external calling interface was modified to be more compatible with NT (although internally it still isn't, and does not have a reason to be). API Names are now generated by a macro from the Server ID, like Emanuele and I noticed from traces, and I've entirely removed the concept of a reply structure. CSRSS uses full-duplex one-way structures, not dual-strutures (this would've been incompatible with the external interface anyways). I don't seem to have introduced any new bugs (console-ROS works great for me, as does the GUI), but there is still a chance some obscure bug might happen, so please bear with me, I had to hand-edit over 250 calls. Also, this now allows full removal of ntdll headers and the next !
 commits will clean this up
Modified: trunk/reactos/include/csrss/csrss.h
Modified: trunk/reactos/include/ndk/ntndk.h
Modified: trunk/reactos/include/ndk/rtltypes.h
Modified: trunk/reactos/include/ndk/umfuncs.h
Modified: trunk/reactos/include/ndk/umtypes.h
Modified: trunk/reactos/include/ntos.h
Modified: trunk/reactos/lib/kernel32/file/create.c
Modified: trunk/reactos/lib/kernel32/k32.h
Modified: trunk/reactos/lib/kernel32/misc/console.c
Modified: trunk/reactos/lib/kernel32/misc/dllmain.c
Modified: trunk/reactos/lib/kernel32/process/create.c
Modified: trunk/reactos/lib/kernel32/process/proc.c
Modified: trunk/reactos/lib/ntdll/csr/lpc.c
Modified: trunk/reactos/lib/ntdll/def/ntdll.def
Modified: trunk/reactos/lib/ntdll/inc/ntdll.h
Modified: trunk/reactos/lib/user32/include/user32.h
Modified: trunk/reactos/lib/user32/misc/exit.c
Modified: trunk/reactos/lib/user32/misc/misc.c
Modified: trunk/reactos/subsys/csrss/api/process.c
Modified: trunk/reactos/subsys/csrss/api/user.c
Modified: trunk/reactos/subsys/csrss/api/wapi.c
Modified: trunk/reactos/subsys/csrss/csrss.c
Modified: trunk/reactos/subsys/csrss/include/api.h
Modified: trunk/reactos/subsys/csrss/init.c
Modified: trunk/reactos/subsys/csrss/win32csr/conio.c
Modified: trunk/reactos/subsys/csrss/win32csr/desktopbg.c
Modified: trunk/reactos/subsys/csrss/win32csr/dllmain.c
Modified: trunk/reactos/subsys/csrss/win32csr/exitros.c
Modified: trunk/reactos/subsys/win32k/include/csr.h
Modified: trunk/reactos/subsys/win32k/ntuser/csr.c
Modified: trunk/reactos/subsys/win32k/ntuser/desktop.c
Modified: trunk/reactos/subsys/win32k/ntuser/misc.c

Modified: trunk/reactos/include/csrss/csrss.h
--- trunk/reactos/include/csrss/csrss.h	2005-06-21 23:42:58 UTC (rev 16212)
+++ trunk/reactos/include/csrss/csrss.h	2005-06-22 04:02:32 UTC (rev 16213)
@@ -7,51 +7,52 @@
 #include <ntos.h>
 #endif
 
+#define CSR_NATIVE     0x0000
+#define CSR_CONSOLE    0x0001
+#define CSR_GUI        0x0002
+
+/*
+typedef union _CSR_API_NUMBER
+{
+    WORD Index;     // CSRSS API number
+    WORD Subsystem; // 0=NTDLL;1=KERNEL32;2=KERNEL32
+} CSR_API_NUMBER, *PCSR_API_NUMBER;
+*/
+
+typedef ULONG CSR_API_NUMBER;
+
+#define MAKE_CSR_API(Number, Server) \
+    ((Server) << 16) + Number
+
 #define CSR_CSRSS_SECTION_SIZE          (65536)
 
 typedef __declspec(noreturn) VOID CALLBACK(*PCONTROLDISPATCHER)(DWORD);
 
 typedef struct
 {
-} CSRSS_CONNECT_PROCESS_REQUEST, *PCSRSS_CONNECT_PROCESS_REQUEST;
+} CSRSS_CONNECT_PROCESS, *PCSRSS_CONNECT_PROCESS;
 
 typedef struct
 {
-} CSRSS_CONNECT_PROCESS_REPLY, *PCSRSS_CONNECT_PROCESS_REPLY;
-
-typedef struct
-{
    HANDLE NewProcessId;
    ULONG Flags;
    PCONTROLDISPATCHER CtrlDispatcher;
-} CSRSS_CREATE_PROCESS_REQUEST, *PCSRSS_CREATE_PROCESS_REQUEST;
-
-typedef struct
-{
    HANDLE Console;
    HANDLE InputHandle;
    HANDLE OutputHandle;
-} CSRSS_CREATE_PROCESS_REPLY, *PCSRSS_CREATE_PROCESS_REPLY;
+} CSRSS_CREATE_PROCESS, *PCSRSS_CREATE_PROCESS;
 
 typedef struct
 {
-} CSRSS_TERMINATE_PROCESS_REQUEST, *PCSRSS_TERMINATE_PROCESS_REQUEST;
+} CSRSS_TERMINATE_PROCESS, *PCSRSS_TERMINATE_PROCESS;
 
 typedef struct
 {
-} CSRSS_TERMINATE_PROCESS_REPLY, *PCSRSS_TERMINATE_PROCESS_REPLY;
-
-typedef struct
-{
   ULONG nMaxIds;
-} CSRSS_GET_PROCESS_LIST_REQUEST, *PCSRSS_GET_PROCESS_LIST_REQUEST;
-
-typedef struct
-{
    ULONG nProcessIdsCopied;
    ULONG nProcessIdsTotal;
    HANDLE ProcessId[1];
-} CSRSS_GET_PROCESS_LIST_REPLY, *PCSRSS_GET_PROCESS_LIST_REPLY;
+} CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;
 
 typedef struct
 {
@@ -59,12 +60,8 @@
    BOOL Unicode;
    ULONG NrCharactersToWrite;
    BYTE Buffer[1];
-} CSRSS_WRITE_CONSOLE_REQUEST, *PCSRSS_WRITE_CONSOLE_REQUEST;
-
-typedef struct
-{
    ULONG NrCharactersWritten;
-} CSRSS_WRITE_CONSOLE_REPLY, *PCSRSS_WRITE_CONSOLE_REPLY;
+} CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
 
 typedef struct
 {
@@ -72,57 +69,37 @@
    BOOL Unicode;
    WORD NrCharactersToRead;
    WORD nCharsCanBeDeleted;     /* number of chars already in buffer that can be backspaced */
-} CSRSS_READ_CONSOLE_REQUEST, *PCSRSS_READ_CONSOLE_REQUEST;
-
-typedef struct
-{
    HANDLE EventHandle;
    ULONG NrCharactersRead;
    BYTE Buffer[1];
-} CSRSS_READ_CONSOLE_REPLY, *PCSRSS_READ_CONSOLE_REPLY;
+} CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;
 
 typedef struct
 {
    PCONTROLDISPATCHER CtrlDispatcher;
-} CSRSS_ALLOC_CONSOLE_REQUEST, *PCSRSS_ALLOC_CONSOLE_REQUEST;
-
-typedef struct
-{
    HANDLE Console;
    HANDLE InputHandle;
    HANDLE OutputHandle;
-} CSRSS_ALLOC_CONSOLE_REPLY, *PCSRSS_ALLOC_CONSOLE_REPLY;
+} CSRSS_ALLOC_CONSOLE, *PCSRSS_ALLOC_CONSOLE;
 
 typedef struct
 {
-} CSRSS_FREE_CONSOLE_REQUEST, *PCSRSS_FREE_CONSOLE_REQUEST;
+} CSRSS_FREE_CONSOLE, *PCSRSS_FREE_CONSOLE;
 
 typedef struct
 {
-} CSRSS_FREE_CONSOLE_REPLY, *PCSRSS_FREE_CONSOLE_REPLY;
-
-typedef struct
-{
    HANDLE ConsoleHandle;
-} CSRSS_SCREEN_BUFFER_INFO_REQUEST, *PCSRSS_SCREEN_BUFFER_INFO_REQUEST;
-
-typedef struct
-{
    CONSOLE_SCREEN_BUFFER_INFO Info;
-} CSRSS_SCREEN_BUFFER_INFO_REPLY, *PCSRSS_SCREEN_BUFFER_INFO_REPLY;
+} CSRSS_SCREEN_BUFFER_INFO, *PCSRSS_SCREEN_BUFFER_INFO;
 
 typedef struct
 {
    HANDLE ConsoleHandle;
    COORD Position;
-} CSRSS_SET_CURSOR_REQUEST, *PCSRSS_SET_CURSOR_REQUEST;
+} CSRSS_SET_CURSOR, *PCSRSS_SET_CURSOR;
 
 typedef struct
 {
-} CSRSS_SET_CURSOR_REPLY, *PCSRSS_SET_CURSOR_REPLY;
-
-typedef struct
-{
    HANDLE ConsoleHandle;
    BOOL Unicode;
    union
@@ -132,12 +109,8 @@
    } Char;
    COORD Position;
    WORD Length;
-} CSRSS_FILL_OUTPUT_REQUEST, *PCSRSS_FILL_OUTPUT_REQUEST;
-
-typedef struct
-{
    ULONG NrCharactersWritten;
-} CSRSS_FILL_OUTPUT_REPLY, *PCSRSS_FILL_OUTPUT_REPLY;
+} CSRSS_FILL_OUTPUT, *PCSRSS_FILL_OUTPUT;
 
 typedef struct
 {
@@ -145,24 +118,16 @@
    CHAR Attribute;
    COORD Coord;
    WORD Length;
-} CSRSS_FILL_OUTPUT_ATTRIB_REQUEST, *PCSRSS_FILL_OUTPUT_ATTRIB_REQUEST;
+} CSRSS_FILL_OUTPUT_ATTRIB, *PCSRSS_FILL_OUTPUT_ATTRIB;
 
 typedef struct
 {
-} CSRSS_FILL_OUTPUT_ATTRIB_REPLY, *PCSRSS_FILL_OUTPUT_ATTRIB_REPLY;
-
-typedef struct
-{
    HANDLE ConsoleHandle;
    BOOL Unicode;
-} CSRSS_READ_INPUT_REQUEST, *PCSRSS_READ_INPUT_REQUEST;
-
-typedef struct
-{
    INPUT_RECORD Input;
    BOOL MoreEvents;
    HANDLE Event;
-} CSRSS_READ_INPUT_REPLY, *PCSRSS_READ_INPUT_REPLY;
+} CSRSS_READ_INPUT, *PCSRSS_READ_INPUT;
 
 typedef struct
 {
@@ -171,13 +136,9 @@
    WORD Length;
    COORD Coord;
    CHAR String[1];
-} CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST;
-
-typedef struct
-{
    COORD EndCoord;
    ULONG NrCharactersWritten;
-} CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REPLY, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REPLY;
+} CSRSS_WRITE_CONSOLE_OUTPUT_CHAR, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR;
 
 typedef struct
 {
@@ -185,114 +146,69 @@
    WORD Length;
    COORD Coord;
    CHAR String[1];
-} CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST;
-
-typedef struct
-{
    COORD EndCoord;
-} CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REPLY, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REPLY;
+} CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB;
 
 typedef struct
 {
    HANDLE ConsoleHandle;
-} CSRSS_GET_CURSOR_INFO_REQUEST, *PCSRSS_GET_CURSOR_INFO_REQUEST;
-
-typedef struct
-{
    CONSOLE_CURSOR_INFO Info;
-} CSRSS_GET_CURSOR_INFO_REPLY, *PCSRSS_GET_CURSOR_INFO_REPLY;
+} CSRSS_GET_CURSOR_INFO, *PCSRSS_GET_CURSOR_INFO;
 
 typedef struct
 {
    HANDLE ConsoleHandle;
    CONSOLE_CURSOR_INFO Info;
-} CSRSS_SET_CURSOR_INFO_REQUEST, *PCSRSS_SET_CURSOR_INFO_REQUEST;
+} CSRSS_SET_CURSOR_INFO, *PCSRSS_SET_CURSOR_INFO;
 
 typedef struct
 {
-} CSRSS_SET_CURSOR_INFO_REPLY, *PCSRSS_SET_CURSOR_INFO_REPLY;
-
-typedef struct
-{
    HANDLE ConsoleHandle;
    CHAR Attrib;
-} CSRSS_SET_ATTRIB_REQUEST, *PCSRSS_SET_ATTRIB_REQUEST;
+} CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
 
 typedef struct
 {
-} CSRSS_SET_ATTRIB_REPLY, *PCSRSS_SET_ATTRIB_REPLY;
-
-typedef struct
-{
   HANDLE ConsoleHandle;
   DWORD Mode;
-} CSRSS_SET_CONSOLE_MODE_REQUEST, *PCSRSS_SET_CONSOLE_MODE_REQUEST;
+} CSRSS_SET_CONSOLE_MODE, *PCSRSS_SET_CONSOLE_MODE;
 
 typedef struct
 {
-} CSRSS_SET_CONSOLE_MODE_REPLY, *PCSRSS_SET_CONSOLE_MODE_REPLY;
-
-typedef struct
-{
   HANDLE ConsoleHandle;
-} CSRSS_GET_CONSOLE_MODE_REQUEST, *PCSRSS_GET_CONSOLE_MODE_REQUEST;
-
-typedef struct
-{
   DWORD ConsoleMode;
-} CSRSS_GET_CONSOLE_MODE_REPLY, *PCSRSS_GET_CONSOLE_MODE_REPLY;
+} CSRSS_GET_CONSOLE_MODE, *PCSRSS_GET_CONSOLE_MODE;
 
 typedef struct
 {
   /* may want to add some parameters here someday */
-} CSRSS_CREATE_SCREEN_BUFFER_REQUEST, *PCSRSS_CREATE_SCREEN_BUFFER_REQUEST;
-
-typedef struct
-{
    HANDLE OutputHandle;  /* handle to newly created screen buffer */
-} CSRSS_CREATE_SCREEN_BUFFER_REPLY, *PCSRSS_CREATE_SCREEN_BUFFER_REPLY;
+} CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
 
 typedef struct
 {
    HANDLE OutputHandle;  /* handle to screen buffer to switch to */
-} CSRSS_SET_SCREEN_BUFFER_REQUEST, *PCSRSS_SET_SCREEN_BUFFER_REQUEST;
+} CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;
 
 typedef struct
 {
-} CSRSS_SET_SCREEN_BUFFER_REPLY, *PCSRSS_SET_SCREEN_BUFFER_REPLY;
-
-typedef struct
-{
 	HANDLE	UniqueThread;
-} CSRSS_IDENTIFY_ALERTABLE_THREAD_REQUEST, *PCSRSS_IDENTIFY_ALERTABLE_THREAD_REQUEST;
-
-typedef struct
-{
 	CLIENT_ID	Cid;
-} CSRSS_IDENTIFY_ALERTABLE_THREAD_REPLY, *PCSRSS_IDENTIFY_ALERTABLE_THREAD_REPLY;
+} CSRSS_IDENTIFY_ALERTABLE_THREAD, *PCSRSS_IDENTIFY_ALERTABLE_THREAD;
 
 typedef struct
 {
   HANDLE Console;
   DWORD Length;
   WCHAR Title[1];
-} CSRSS_SET_TITLE_REQUEST, *PCSRSS_SET_TITLE_REQUEST;
+} CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
 
 typedef struct
 {
-} CSRSS_SET_TITLE_REPLY, *PCSRSS_SET_TITLE_REPLY;
-
-typedef struct
-{
    HANDLE ConsoleHandle;
-} CSRSS_GET_TITLE_REQUEST, *PCSRSS_GET_TITLE_REQUEST;
-
-typedef struct
-{
-  HANDLE ConsoleHandle;
   DWORD Length;
   WCHAR Title[1];
-} CSRSS_GET_TITLE_REPLY, *PCSRSS_GET_TITLE_REPLY;
+} CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
 
 typedef struct
 {
@@ -302,24 +218,15 @@
   COORD BufferCoord;
   SMALL_RECT WriteRegion;
   CHAR_INFO* CharInfo;
-} CSRSS_WRITE_CONSOLE_OUTPUT_REQUEST, *PCSRSS_WRITE_CONSOLE_OUTPUT_REQUEST;
+} CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;
 
 typedef struct
 {
-  SMALL_RECT WriteRegion;
-} CSRSS_WRITE_CONSOLE_OUTPUT_REPLY, *PCSRSS_WRITE_CONSOLE_OUTPUT_REPLY;
-
-typedef struct
-{
    HANDLE ConsoleInput;
-} CSRSS_FLUSH_INPUT_BUFFER_REQUEST, *PCSRSS_FLUSH_INPUT_BUFFER_REQUEST;
+} CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;
 
 typedef struct
 {
-} CSRSS_FLUSH_INPUT_BUFFER_REPLY, *PCSRSS_FLUSH_INPUT_BUFFER_REPLY;
-
-typedef struct
-{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   SMALL_RECT ScrollRectangle;
@@ -327,88 +234,56 @@
   SMALL_RECT ClipRectangle;
   COORD DestinationOrigin;
   CHAR_INFO Fill;
-} CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REQUEST, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REQUEST;
+} CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;
 
 typedef struct
 {
-} CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REPLY, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REPLY;
-
-typedef struct
-{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   DWORD NumCharsToRead;
   COORD ReadCoord;
-}CSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST;
-
-typedef struct
-{
   COORD EndCoord;
   DWORD CharsRead;
   CHAR String[1];
-}CSRSS_READ_CONSOLE_OUTPUT_CHAR_REPLY, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR_REPLY;
+}CSRSS_READ_CONSOLE_OUTPUT_CHAR, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR;
 
 typedef struct
 {
   HANDLE ConsoleHandle;
   DWORD NumAttrsToRead;
   COORD ReadCoord;
-}CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST;
-
-typedef struct
-{
   COORD EndCoord;
   CHAR String[1];
-}CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REPLY, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REPLY;
+}CSRSS_READ_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB;
 
 typedef struct
 {
   HANDLE ConsoleHandle;
-}CSRSS_GET_NUM_INPUT_EVENTS_REQUEST, *PCSRSS_GET_NUM_INPUT_EVENTS_REQUEST;
-
-typedef struct
-{
    DWORD NumInputEvents;
-}CSRSS_GET_NUM_INPUT_EVENTS_REPLY, *PCSRSS_GET_NUM_INPUT_EVENTS_REPLY;
+}CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;
 
 typedef struct
 {
   HANDLE ProcessId;
-} CSRSS_REGISTER_SERVICES_PROCESS_REQUEST, *PCSRSS_REGISTER_SERVICES_PROCESS_REQUEST;
+} CSRSS_REGISTER_SERVICES_PROCESS, *PCSRSS_REGISTER_SERVICES_PROCESS;
 
 typedef struct
 {
-} CSRSS_REGISTER_SERVICES_PROCESS_REPLY, *PCSRSS_REGISTER_SERVICES_PROCESS_REPLY;
-
-typedef struct
-{
   UINT Flags;
   DWORD Reserved;
-} CSRSS_EXIT_REACTOS_REQUEST, *PCSRSS_EXIT_REACTOS_REQUEST;
+} CSRSS_EXIT_REACTOS, *PCSRSS_EXIT_REACTOS;
 
 typedef struct
 {
-} CSRSS_EXIT_REACTOS_REPLY, *PCSRSS_EXIT_REACTOS_REPLY;
-
-typedef struct
-{
   DWORD Level;
   DWORD Flags;
-} CSRSS_SET_SHUTDOWN_PARAMETERS_REQUEST, *PCSRSS_SET_SHUTDOWN_PARAMETERS_REQUEST;
+} CSRSS_SET_SHUTDOWN_PARAMETERS, *PCSRSS_SET_SHUTDOWN_PARAMETERS;
 
 typedef struct
 {
-} CSRSS_SET_SHUTDOWN_PARAMETERS_REPLY, *PCSRSS_SET_SHUTDOWN_PARAMETERS_REPLY;
-
-typedef struct
-{
-} CSRSS_GET_SHUTDOWN_PARAMETERS_REQUEST, *PCSRSS_GET_SHUTDOWN_PARAMETERS_REQUEST;
-
-typedef struct
-{
   DWORD Level;
   DWORD Flags;
-} CSRSS_GET_SHUTDOWN_PARAMETERS_REPLY, *PCSRSS_GET_SHUTDOWN_PARAMETERS_REPLY;
+} CSRSS_GET_SHUTDOWN_PARAMETERS, *PCSRSS_GET_SHUTDOWN_PARAMETERS;
 
 typedef struct
 {
@@ -416,88 +291,52 @@
   BOOL Unicode;
   DWORD Length;
   INPUT_RECORD* InputRecord;
-} CSRSS_PEEK_CONSOLE_INPUT_REQUEST, *PCSRSS_PEEK_CONSOLE_INPUT_REQUEST;
+} CSRSS_PEEK_CONSOLE_INPUT, *PCSRSS_PEEK_CONSOLE_INPUT;
 
 typedef struct
 {
-  DWORD Length;
-} CSRSS_PEEK_CONSOLE_INPUT_REPLY, *PCSRSS_PEEK_CONSOLE_INPUT_REPLY;
-
-typedef struct
-{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   COORD BufferSize;
   COORD BufferCoord;
   SMALL_RECT ReadRegion;
   CHAR_INFO* CharInfo;
-} CSRSS_READ_CONSOLE_OUTPUT_REQUEST, *PCSRSS_READ_CONSOLE_OUTPUT_REQUEST;
+} CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;
 
 typedef struct
 {
-  SMALL_RECT ReadRegion;
-} CSRSS_READ_CONSOLE_OUTPUT_REPLY, *PCSRSS_READ_CONSOLE_OUTPUT_REPLY;
-
-typedef struct
-{
   HANDLE ConsoleHandle;
   BOOL Unicode;
   DWORD Length;
   INPUT_RECORD* InputRecord;
-} CSRSS_WRITE_CONSOLE_INPUT_REQUEST, *PCSRSS_WRITE_CONSOLE_INPUT_REQUEST;
+} CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;
 
 typedef struct
 {
-  DWORD Length;
-} CSRSS_WRITE_CONSOLE_INPUT_REPLY, *PCSRSS_WRITE_CONSOLE_INPUT_REPLY;
-
-typedef struct
-{
-} CSRSS_GET_INPUT_HANDLE_REQUEST, *PCSRSS_GET_INPUT_HANDLE_REQUEST;
-
-typedef struct
-{
   HANDLE InputHandle;
-} CSRSS_GET_INPUT_HANDLE_REPLY, *PCSRSS_GET_INPUT_HANDLE_REPLY;
+} CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE;
 
 typedef struct
 {
-} CSRSS_GET_OUTPUT_HANDLE_REQUEST, *PCSRSS_GET_OUTPUT_HANDLE_REQUEST;
-
-typedef struct
-{
   HANDLE OutputHandle;
-} CSRSS_GET_OUTPUT_HANDLE_REPLY, *PCSRSS_GET_OUTPUT_HANDLE_REPLY;
+} CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
 
 typedef struct
 {
   HANDLE Handle;
-} CSRSS_CLOSE_HANDLE_REQUEST, *PCSRSS_CLOSE_HANDLE_REQUEST;
+} CSRSS_CLOSE_HANDLE, *PCSRSS_CLOSE_HANDLE;
 
 typedef struct
 {
-} CSRSS_CLOSE_HANDLE_REPLY, *PCSRSS_CLOSE_HANDLE_REPLY;
-
-typedef struct
-{
   HANDLE Handle;
-} CSRSS_VERIFY_HANDLE_REQUEST, *PCSRSS_VERIFY_HANDLE_REQUEST;
+} CSRSS_VERIFY_HANDLE, *PCSRSS_VERIFY_HANDLE;
 
 typedef struct
 {
-} CSRSS_VERIFY_HANDLE_REPLY, *PCSRSS_VERIFY_HANDLE_REPLY;
-
-typedef struct
-{
   HANDLE Handle;
   HANDLE ProcessId;
-} CSRSS_DUPLICATE_HANDLE_REQUEST, *PCSRSS_DUPLICATE_HANDLE_REQUEST;
+} CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
 
-typedef struct
-{
-  HANDLE Handle;
-} CSRSS_DUPLICATE_HANDLE_REPLY, *PCSRSS_DUPLICATE_HANDLE_REPLY;
-
 #define CONSOLE_HARDWARE_STATE_GET 0
 #define CONSOLE_HARDWARE_STATE_SET 1
 
@@ -509,204 +348,149 @@
   HANDLE ConsoleHandle;
   DWORD SetGet; /* 0=get; 1=set */
   DWORD State;
-} CSRSS_SETGET_CONSOLE_HW_STATE_REQUEST, *PCSRSS_SETGET_CONSOLE_HW_STATE_REQUEST;
+} CSRSS_SETGET_CONSOLE_HW_STATE, *PCSRSS_SETGET_CONSOLE_HW_STATE;
 
 typedef struct
 {
-  HANDLE ConsoleHandle;
-  DWORD SetGet; /* 0=get; 1=set */
-  DWORD State;
-} CSRSS_SETGET_CONSOLE_HW_STATE_REPLY, *PCSRSS_SETGET_CONSOLE_HW_STATE_REPLY;
-
-typedef struct
-{
-} CSRSS_GET_CONSOLE_WINDOW_REQUEST, *PCSRSS_GET_CONSOLE_WINDOW_REQUEST;
-
-typedef struct
-{
   HWND   WindowHandle;
-} CSRSS_GET_CONSOLE_WINDOW_REPLY, *PCSRSS_GET_CONSOLE_WINDOW_REPLY;
+} CSRSS_GET_CONSOLE_WINDOW, *PCSRSS_GET_CONSOLE_WINDOW;
 
 typedef struct
 {
   HICON  WindowIcon;
-} CSRSS_SET_CONSOLE_ICON_REQUEST, *PCSRSS_SET_CONSOLE_ICON_REQUEST;
+} CSRSS_SET_CONSOLE_ICON, *PCSRSS_SET_CONSOLE_ICON;
 
 typedef struct
 {
-} CSRSS_SET_CONSOLE_ICON_REPLY, *PCSRSS_SET_CONSOLE_ICON_REPLY;
-
-typedef struct
-{
   HDESK DesktopHandle;
-} CSRSS_CREATE_DESKTOP_REQUEST, *PCSRSS_CREATE_DESKTOP_REQUEST;
+} CSRSS_CREATE_DESKTOP, *PCSRSS_CREATE_DESKTOP;
 
 typedef struct
 {
-} CSRSS_CREATE_DESKTOP_REPLY, *PCSRSS_CREATE_DESKTOP_REPLY;
-
-typedef struct
-{
   HWND DesktopWindow;
   ULONG Width;
   ULONG Height;
-} CSRSS_SHOW_DESKTOP_REQUEST, *PCSRSS_SHOW_DESKTOP_REQUEST;
+} CSRSS_SHOW_DESKTOP, *PCSRSS_SHOW_DESKTOP;
 
 typedef struct
 {
-} CSRSS_SHOW_DESKTOP_REPLY, *PCSRSS_SHOW_DESKTOP_REPLY;
-
-typedef struct
-{
   HWND DesktopWindow;
-} CSRSS_HIDE_DESKTOP_REQUEST, *PCSRSS_HIDE_DESKTOP_REQUEST;
+} CSRSS_HIDE_DESKTOP, *PCSRSS_HIDE_DESKTOP;
 
 typedef struct
 {
-} CSRSS_HIDE_DESKTOP_REPLY, *PCSRSS_HIDE_DESKTOP_REPLY;
-
-typedef struct
-{
   HWND LogonNotifyWindow;
-} CSRSS_SET_LOGON_NOTIFY_WINDOW_REQUEST, *PCSRSS_SET_LOGON_NOTIFY_WINDOW_REQUEST;
+} CSRSS_SET_LOGON_NOTIFY_WINDOW, *PCSRSS_SET_LOGON_NOTIFY_WINDOW;
 
 typedef struct
 {
-} CSRSS_SET_LOGON_NOTIFY_WINDOW_REPLY, *PCSRSS_SET_LOGON_NOTIFY_WINDOW_REPLY;
-
-typedef struct
-{
   HANDLE ProcessId;
   BOOL Register;
-} CSRSS_REGISTER_LOGON_PROCESS_REQUEST, *PCSRSS_REGISTER_LOGON_PROCESS_REQUEST;
+} CSRSS_REGISTER_LOGON_PROCESS, *PCSRSS_REGISTER_LOGON_PROCESS;
 
 typedef struct
 {
-} CSRSS_REGISTER_LOGON_PROCESS_REPLY, *PCSRSS_REGISTER_LOGON_PROCESS_REPLY;
-
-typedef struct
-{
-} CSRSS_GET_CONSOLE_CP_REQUEST, *PCSRSS_GET_CONSOLE_CP_REQUEST;
-
-typedef struct
-{
   UINT CodePage;
-} CSRSS_GET_CONSOLE_CP_REPLY, *PCSRSS_GET_CONSOLE_CP_REPLY;
+} CSRSS_GET_CONSOLE_CP, *PCSRSS_GET_CONSOLE_CP;
 
 typedef struct
 {
   UINT CodePage;
-} CSRSS_SET_CONSOLE_CP_REQUEST, *PCSRSS_SET_CONSOLE_CP_REQUEST;
+} CSRSS_SET_CONSOLE_CP, *PCSRSS_SET_CONSOLE_CP;
 
 typedef struct
 {
-} CSRSS_SET_CONSOLE_CP_REPLY, *PCSRSS_SET_CONSOLE_CP_REPLY;
-
-typedef struct
-{
-} CSRSS_GET_CONSOLE_OUTPUT_CP_REQUEST, *PCSRSS_GET_CONSOLE_OUTPUT_CP_REQUEST;
-
-typedef struct
-{
   UINT CodePage;
-} CSRSS_GET_CONSOLE_OUTPUT_CP_REPLY, *PCSRSS_GET_CONSOLE_OUTPUT_CP_REPLY;
+} CSRSS_GET_CONSOLE_OUTPUT_CP, *PCSRSS_GET_CONSOLE_OUTPUT_CP;
 
 typedef struct
 {
   UINT CodePage;
-} CSRSS_SET_CONSOLE_OUTPUT_CP_REQUEST, *PCSRSS_SET_CONSOLE_OUTPUT_CP_REQUEST;
+} CSRSS_SET_CONSOLE_OUTPUT_CP, *PCSRSS_SET_CONSOLE_OUTPUT_CP;
 
 typedef struct
 {
-} CSRSS_SET_CONSOLE_OUTPUT_CP_REPLY, *PCSRSS_SET_CONSOLE_OUTPUT_CP_REPLY;
-
-typedef struct
-{
-} CSRSS_GET_INPUT_WAIT_HANDLE_REQUEST, *PCSRSS_GET_INPUT_WAIT_HANDLE_REQUEST;
-
-typedef struct
-{
   HANDLE InputWaitHandle;
-} CSRSS_GET_INPUT_WAIT_HANDLE_REPLY, *PCSRSS_GET_INPUT_WAIT_HANDLE_REPLY;
+} CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
 
-#define CSRSS_MAX_WRITE_CONSOLE_REQUEST       \
-      (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(CSRSS_WRITE_CONSOLE_REQUEST))
+#define CSRSS_MAX_WRITE_CONSOLE       \
+      (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(CSRSS_WRITE_CONSOLE))
 
-#define CSRSS_MAX_SET_TITLE_REQUEST           (MAX_MESSAGE_DATA - sizeof( HANDLE ) - sizeof( DWORD ) - sizeof( ULONG ) - LPC_MESSAGE_BASE_SIZE)
+#define CSRSS_MAX_SET_TITLE           (MAX_MESSAGE_DATA - sizeof( HANDLE ) - sizeof( DWORD ) - sizeof( ULONG ) - LPC_MESSAGE_BASE_SIZE)
 
-#define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR   (MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST ))
+#define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR   (MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_WRITE_CONSOLE_OUTPUT_CHAR ))
 
-#define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB   ((MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST )) / 2)
+#define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB   ((MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB )) / 2)
 
-#define CSRSS_MAX_READ_CONSOLE_REQUEST        (MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_READ_CONSOLE_REQUEST ))
+#define CSRSS_MAX_READ_CONSOLE        (MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_READ_CONSOLE ))
 
-#define CSRSS_MAX_READ_CONSOLE_OUTPUT_CHAR    (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST))
+#define CSRSS_MAX_READ_CONSOLE_OUTPUT_CHAR    (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_CHAR))
 
-#define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB  (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST))
+#define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB  (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB))
 
 /* WCHARs, not bytes! */
 #define CSRSS_MAX_TITLE_LENGTH          80
 
-#define CSRSS_CREATE_PROCESS                (0x0)
-#define CSRSS_TERMINATE_PROCESS             (0x1)
-#define CSRSS_WRITE_CONSOLE                 (0x2)
-#define CSRSS_READ_CONSOLE                  (0x3)
-#define CSRSS_ALLOC_CONSOLE                 (0x4)
-#define CSRSS_FREE_CONSOLE                  (0x5)
-#define CSRSS_CONNECT_PROCESS               (0x6)
-#define CSRSS_SCREEN_BUFFER_INFO            (0x7)
-#define CSRSS_SET_CURSOR                    (0x8)
-#define CSRSS_FILL_OUTPUT                   (0x9)
-#define CSRSS_READ_INPUT                    (0xA)
-#define CSRSS_WRITE_CONSOLE_OUTPUT_CHAR     (0xB)
-#define CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB   (0xC)
-#define CSRSS_FILL_OUTPUT_ATTRIB            (0xD)
-#define CSRSS_GET_CURSOR_INFO               (0xE)
-#define CSRSS_SET_CURSOR_INFO               (0xF)
-#define CSRSS_SET_ATTRIB                    (0x10)
-#define CSRSS_GET_CONSOLE_MODE              (0x11)
-#define CSRSS_SET_CONSOLE_MODE              (0x12)
-#define CSRSS_CREATE_SCREEN_BUFFER          (0x13)
-#define CSRSS_SET_SCREEN_BUFFER             (0x14)
-#define CSRSS_SET_TITLE                     (0x15)
-#define CSRSS_GET_TITLE                     (0x16)
-#define CSRSS_WRITE_CONSOLE_OUTPUT          (0x17)
-#define CSRSS_FLUSH_INPUT_BUFFER            (0x18)
-#define CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER  (0x19)
-#define CSRSS_READ_CONSOLE_OUTPUT_CHAR      (0x1A)
-#define CSRSS_READ_CONSOLE_OUTPUT_ATTRIB    (0x1B)
-#define CSRSS_GET_NUM_INPUT_EVENTS          (0x1C)
-#define CSRSS_REGISTER_SERVICES_PROCESS     (0x1D)
-#define CSRSS_EXIT_REACTOS                  (0x1E)
-#define CSRSS_GET_SHUTDOWN_PARAMETERS       (0x1F)
-#define CSRSS_SET_SHUTDOWN_PARAMETERS       (0x20)
-#define CSRSS_PEEK_CONSOLE_INPUT            (0x21)
-#define CSRSS_READ_CONSOLE_OUTPUT           (0x22)
-#define CSRSS_WRITE_CONSOLE_INPUT           (0x23)
-#define CSRSS_GET_INPUT_HANDLE              (0x24)
-#define CSRSS_GET_OUTPUT_HANDLE             (0x25)
-#define CSRSS_CLOSE_HANDLE                  (0x26)
-#define CSRSS_VERIFY_HANDLE                 (0x27)
-#define CSRSS_DUPLICATE_HANDLE		    (0x28)
-#define CSRSS_SETGET_CONSOLE_HW_STATE       (0x29)
-#define CSRSS_GET_CONSOLE_WINDOW            (0x2A)
-#define CSRSS_CREATE_DESKTOP                (0x2B)
-#define CSRSS_SHOW_DESKTOP                  (0x2C)
-#define CSRSS_HIDE_DESKTOP                  (0x2D)
-#define CSRSS_SET_CONSOLE_ICON              (0x2E)
-#define CSRSS_SET_LOGON_NOTIFY_WINDOW       (0x2F)
-#define CSRSS_REGISTER_LOGON_PROCESS        (0x30)
-#define CSRSS_GET_CONSOLE_CP                (0x31)
-#define CSRSS_SET_CONSOLE_CP                (0x32)
-#define CSRSS_GET_CONSOLE_OUTPUT_CP         (0x33)
-#define CSRSS_SET_CONSOLE_OUTPUT_CP         (0x34)
-#define CSRSS_GET_INPUT_WAIT_HANDLE	    (0x35)
-#define CSRSS_GET_PROCESS_LIST              (0x36)
+#define CREATE_PROCESS                (0x0)
+#define TERMINATE_PROCESS             (0x1)
+#define WRITE_CONSOLE                 (0x2)
+#define READ_CONSOLE                  (0x3)
+#define ALLOC_CONSOLE                 (0x4)
+#define FREE_CONSOLE                  (0x5)
+#define CONNECT_PROCESS               (0x6)
+#define SCREEN_BUFFER_INFO            (0x7)
+#define SET_CURSOR                    (0x8)
+#define FILL_OUTPUT                   (0x9)
+#define READ_INPUT                    (0xA)
+#define WRITE_CONSOLE_OUTPUT_CHAR     (0xB)
+#define WRITE_CONSOLE_OUTPUT_ATTRIB   (0xC)
+#define FILL_OUTPUT_ATTRIB            (0xD)
+#define GET_CURSOR_INFO               (0xE)
+#define SET_CURSOR_INFO               (0xF)
+#define SET_ATTRIB                    (0x10)
+#define GET_CONSOLE_MODE              (0x11)
+#define SET_CONSOLE_MODE              (0x12)
+#define CREATE_SCREEN_BUFFER          (0x13)
+#define SET_SCREEN_BUFFER             (0x14)
+#define SET_TITLE                     (0x15)
+#define GET_TITLE                     (0x16)
+#define WRITE_CONSOLE_OUTPUT          (0x17)
+#define FLUSH_INPUT_BUFFER            (0x18)
+#define SCROLL_CONSOLE_SCREEN_BUFFER  (0x19)
+#define READ_CONSOLE_OUTPUT_CHAR      (0x1A)
+#define READ_CONSOLE_OUTPUT_ATTRIB    (0x1B)
+#define GET_NUM_INPUT_EVENTS          (0x1C)
+#define REGISTER_SERVICES_PROCESS     (0x1D)
+#define EXIT_REACTOS                  (0x1E)
+#define GET_SHUTDOWN_PARAMETERS       (0x1F)
+#define SET_SHUTDOWN_PARAMETERS       (0x20)
+#define PEEK_CONSOLE_INPUT            (0x21)
+#define READ_CONSOLE_OUTPUT           (0x22)
+#define WRITE_CONSOLE_INPUT           (0x23)
+#define GET_INPUT_HANDLE              (0x24)
+#define GET_OUTPUT_HANDLE             (0x25)
+#define CLOSE_HANDLE                  (0x26)
+#define VERIFY_HANDLE                 (0x27)
+#define DUPLICATE_HANDLE		    (0x28)
+#define SETGET_CONSOLE_HW_STATE       (0x29)
+#define GET_CONSOLE_WINDOW            (0x2A)
+#define CREATE_DESKTOP                (0x2B)
+#define SHOW_DESKTOP                  (0x2C)
+#define HIDE_DESKTOP                  (0x2D)
+#define SET_CONSOLE_ICON              (0x2E)
+#define SET_LOGON_NOTIFY_WINDOW       (0x2F)
+#define REGISTER_LOGON_PROCESS        (0x30)
+#define GET_CONSOLE_CP                (0x31)
+#define SET_CONSOLE_CP                (0x32)
+#define GET_CONSOLE_OUTPUT_CP         (0x33)
+#define SET_CONSOLE_OUTPUT_CP         (0x34)
+#define GET_INPUT_WAIT_HANDLE	    (0x35)
+#define GET_PROCESS_LIST              (0x36)
 
 /* Keep in sync with definition below. */
-#define CSRSS_REQUEST_HEADER_SIZE (LPC_MESSAGE_BASE_SIZE + sizeof(ULONG))
+#define CSRSS_HEADER_SIZE (LPC_MESSAGE_BASE_SIZE + sizeof(ULONG) + sizeof(NTSTATUS))
 
-typedef struct
+typedef struct _CSR_API_MESSAGE
 {
   union
   {
@@ -715,118 +499,65 @@
     {
       BYTE HeaderReserved[LPC_MESSAGE_BASE_SIZE];
       ULONG Type;
-      union
-      {
-        CSRSS_CREATE_PROCESS_REQUEST CreateProcessRequest;
-        CSRSS_CONNECT_PROCESS_REQUEST ConnectRequest;
-        CSRSS_WRITE_CONSOLE_REQUEST WriteConsoleRequest;
-        CSRSS_READ_CONSOLE_REQUEST ReadConsoleRequest;
-        CSRSS_ALLOC_CONSOLE_REQUEST AllocConsoleRequest;
-        CSRSS_SCREEN_BUFFER_INFO_REQUEST ScreenBufferInfoRequest;
-        CSRSS_SET_CURSOR_REQUEST SetCursorRequest;
-        CSRSS_FILL_OUTPUT_REQUEST FillOutputRequest;
-        CSRSS_READ_INPUT_REQUEST ReadInputRequest;
-        CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST WriteConsoleOutputCharRequest;
-        CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST WriteConsoleOutputAttribRequest;
-        CSRSS_FILL_OUTPUT_ATTRIB_REQUEST FillOutputAttribRequest;
-        CSRSS_SET_CURSOR_INFO_REQUEST SetCursorInfoRequest;
-        CSRSS_GET_CURSOR_INFO_REQUEST GetCursorInfoRequest;
-        CSRSS_SET_ATTRIB_REQUEST SetAttribRequest;
-        CSRSS_SET_CONSOLE_MODE_REQUEST SetConsoleModeRequest;
-        CSRSS_GET_CONSOLE_MODE_REQUEST GetConsoleModeRequest;
-        CSRSS_CREATE_SCREEN_BUFFER_REQUEST CreateScreenBufferRequest;
-        CSRSS_SET_SCREEN_BUFFER_REQUEST SetScreenBufferRequest;
-        CSRSS_SET_TITLE_REQUEST SetTitleRequest;
-        CSRSS_GET_TITLE_REQUEST GetTitleRequest;
-        CSRSS_WRITE_CONSOLE_OUTPUT_REQUEST WriteConsoleOutputRequest;
-        CSRSS_FLUSH_INPUT_BUFFER_REQUEST FlushInputBufferRequest;
-        CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REQUEST ScrollConsoleScreenBufferRequest;
-        CSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST ReadConsoleOutputCharRequest;
-        CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST ReadConsoleOutputAttribRequest;
-        CSRSS_GET_NUM_INPUT_EVENTS_REQUEST GetNumInputEventsRequest;
-        CSRSS_REGISTER_SERVICES_PROCESS_REQUEST RegisterServicesProcessRequest;
-        CSRSS_EXIT_REACTOS_REQUEST ExitReactosRequest;
-        CSRSS_SET_SHUTDOWN_PARAMETERS_REQUEST SetShutdownParametersRequest;
-        CSRSS_GET_SHUTDOWN_PARAMETERS_REQUEST GetShutdownParametersRequest;
-        CSRSS_PEEK_CONSOLE_INPUT_REQUEST PeekConsoleInputRequest;
-        CSRSS_READ_CONSOLE_OUTPUT_REQUEST ReadConsoleOutputRequest;
-        CSRSS_WRITE_CONSOLE_INPUT_REQUEST WriteConsoleInputRequest;
-        CSRSS_CLOSE_HANDLE_REQUEST CloseHandleRequest;
-        CSRSS_VERIFY_HANDLE_REQUEST VerifyHandleRequest;
-        CSRSS_DUPLICATE_HANDLE_REQUEST DuplicateHandleRequest;
-        CSRSS_SETGET_CONSOLE_HW_STATE_REQUEST ConsoleHardwareStateRequest;
-        CSRSS_GET_CONSOLE_WINDOW_REQUEST GetConsoleWindowRequest;
-        CSRSS_CREATE_DESKTOP_REQUEST CreateDesktopRequest;
-        CSRSS_SHOW_DESKTOP_REQUEST ShowDesktopRequest;
-        CSRSS_HIDE_DESKTOP_REQUEST HideDesktopRequest;
-        CSRSS_SET_CONSOLE_ICON_REQUEST SetConsoleIconRequest;
-        CSRSS_SET_LOGON_NOTIFY_WINDOW_REQUEST SetLogonNotifyWindowRequest;
-        CSRSS_REGISTER_LOGON_PROCESS_REQUEST RegisterLogonProcessRequest;
-        CSRSS_GET_CONSOLE_CP_REQUEST GetConsoleCodePage;
-        CSRSS_SET_CONSOLE_CP_REQUEST SetConsoleCodePage;
-        CSRSS_GET_CONSOLE_OUTPUT_CP_REQUEST GetConsoleOutputCodePage;
-        CSRSS_SET_CONSOLE_OUTPUT_CP_REQUEST SetConsoleOutputCodePage;
-	CSRSS_GET_INPUT_WAIT_HANDLE_REQUEST GetConsoleInputWaitHandle;
-	CSRSS_GET_PROCESS_LIST_REQUEST GetProcessListRequest;
-      } Data;
-    };
-  };
-} CSRSS_API_REQUEST, *PCSRSS_API_REQUEST;
-
-typedef struct
-{
-  union
-  {
-    LPC_MESSAGE Header;
-    struct
-    {
-      BYTE HeaderReserved[LPC_MESSAGE_BASE_SIZE];
       NTSTATUS Status;
       union
       {
-        CSRSS_CREATE_PROCESS_REPLY CreateProcessReply;
-        CSRSS_CONNECT_PROCESS_REPLY ConnectReply;
-        CSRSS_FILL_OUTPUT_REPLY FillOutputReply;
-        CSRSS_WRITE_CONSOLE_REPLY WriteConsoleReply;
-        CSRSS_READ_CONSOLE_REPLY ReadConsoleReply;
-        CSRSS_ALLOC_CONSOLE_REPLY AllocConsoleReply;
-        CSRSS_SCREEN_BUFFER_INFO_REPLY ScreenBufferInfoReply;
-        CSRSS_READ_INPUT_REPLY ReadInputReply;
-        CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REPLY WriteConsoleOutputCharReply;
-        CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REPLY WriteConsoleOutputAttribReply;
-        CSRSS_GET_CURSOR_INFO_REPLY GetCursorInfoReply;
-        CSRSS_GET_CONSOLE_MODE_REPLY GetConsoleModeReply;
-        CSRSS_CREATE_SCREEN_BUFFER_REPLY CreateScreenBufferReply;
-        CSRSS_GET_TITLE_REPLY GetTitleReply;
-        CSRSS_WRITE_CONSOLE_OUTPUT_REPLY WriteConsoleOutputReply;
-        CSRSS_READ_CONSOLE_OUTPUT_CHAR_REPLY ReadConsoleOutputCharReply;
-        CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REPLY ReadConsoleOutputAttribReply;
-        CSRSS_GET_NUM_INPUT_EVENTS_REPLY GetNumInputEventsReply;
-        CSRSS_SET_SHUTDOWN_PARAMETERS_REPLY SetShutdownParametersReply;
-        CSRSS_GET_SHUTDOWN_PARAMETERS_REPLY GetShutdownParametersReply;
-        CSRSS_PEEK_CONSOLE_INPUT_REPLY PeekConsoleInputReply;
-        CSRSS_READ_CONSOLE_OUTPUT_REPLY ReadConsoleOutputReply;
-        CSRSS_WRITE_CONSOLE_INPUT_REPLY WriteConsoleInputReply;
-        CSRSS_GET_INPUT_HANDLE_REPLY GetInputHandleReply;
-        CSRSS_GET_OUTPUT_HANDLE_REPLY GetOutputHandleReply;
-        CSRSS_DUPLICATE_HANDLE_REPLY DuplicateHandleReply;
-        CSRSS_SETGET_CONSOLE_HW_STATE_REPLY ConsoleHardwareStateReply;
-        CSRSS_GET_CONSOLE_WINDOW_REPLY GetConsoleWindowReply;
-        CSRSS_CREATE_DESKTOP_REPLY CreateDesktopReply;
-        CSRSS_SHOW_DESKTOP_REPLY ShowDesktopReply;
-        CSRSS_HIDE_DESKTOP_REPLY HideDesktopReply;
-        CSRSS_SET_CONSOLE_ICON_REPLY SetConsoleIconReply;
-        CSRSS_SET_LOGON_NOTIFY_WINDOW_REPLY SetLogonNotifyWindowReply;
-        CSRSS_REGISTER_LOGON_PROCESS_REPLY RegisterLogonProcessReply;
-        CSRSS_GET_CONSOLE_CP_REPLY GetConsoleCodePage;
-        CSRSS_SET_CONSOLE_CP_REPLY SetConsoleCodePage;
-        CSRSS_GET_CONSOLE_OUTPUT_CP_REPLY GetConsoleOutputCodePage;
-        CSRSS_SET_CONSOLE_OUTPUT_CP_REPLY SetConsoleOutputCodePage;
-	CSRSS_GET_INPUT_WAIT_HANDLE_REPLY GetConsoleInputWaitHandle;
-	CSRSS_GET_PROCESS_LIST_REPLY GetProcessListReply;
+        CSRSS_CREATE_PROCESS CreateProcessRequest;
+        CSRSS_CONNECT_PROCESS ConnectRequest;
+        CSRSS_WRITE_CONSOLE WriteConsoleRequest;
+        CSRSS_READ_CONSOLE ReadConsoleRequest;
+        CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
+        CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
+        CSRSS_SET_CURSOR SetCursorRequest;
+        CSRSS_FILL_OUTPUT FillOutputRequest;
+        CSRSS_READ_INPUT ReadInputRequest;
+        CSRSS_WRITE_CONSOLE_OUTPUT_CHAR WriteConsoleOutputCharRequest;
+        CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB WriteConsoleOutputAttribRequest;
+        CSRSS_FILL_OUTPUT_ATTRIB FillOutputAttribRequest;
+        CSRSS_SET_CURSOR_INFO SetCursorInfoRequest;
+        CSRSS_GET_CURSOR_INFO GetCursorInfoRequest;
+        CSRSS_SET_ATTRIB SetAttribRequest;
+        CSRSS_SET_CONSOLE_MODE SetConsoleModeRequest;
+        CSRSS_GET_CONSOLE_MODE GetConsoleModeRequest;
+        CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
+        CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
+        CSRSS_SET_TITLE SetTitleRequest;
+        CSRSS_GET_TITLE GetTitleRequest;
+        CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
+        CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
+        CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
+        CSRSS_READ_CONSOLE_OUTPUT_CHAR ReadConsoleOutputCharRequest;
+        CSRSS_READ_CONSOLE_OUTPUT_ATTRIB ReadConsoleOutputAttribRequest;
+        CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
+        CSRSS_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
+        CSRSS_EXIT_REACTOS ExitReactosRequest;
+        CSRSS_SET_SHUTDOWN_PARAMETERS SetShutdownParametersRequest;
+        CSRSS_GET_SHUTDOWN_PARAMETERS GetShutdownParametersRequest;
+        CSRSS_PEEK_CONSOLE_INPUT PeekConsoleInputRequest;
+        CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest;
+        CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
+        CSRSS_GET_INPUT_HANDLE GetInputHandleRequest;
+        CSRSS_GET_OUTPUT_HANDLE GetOutputHandleRequest;
+        CSRSS_CLOSE_HANDLE CloseHandleRequest;
+        CSRSS_VERIFY_HANDLE VerifyHandleRequest;
+        CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
+        CSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
+        CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
+        CSRSS_CREATE_DESKTOP CreateDesktopRequest;
+        CSRSS_SHOW_DESKTOP ShowDesktopRequest;
+        CSRSS_HIDE_DESKTOP HideDesktopRequest;
+        CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
+        CSRSS_SET_LOGON_NOTIFY_WINDOW SetLogonNotifyWindowRequest;
+        CSRSS_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
[truncated at 1000 lines; 5109 more skipped]