branch update for HEAD-2003091401
[reactos.git] / include / csrss / csrss.h
index c1e59c7..25d2c81 100644 (file)
@@ -13,6 +13,8 @@
 
 #define CSR_CSRSS_SECTION_SIZE          (65536)
 
+typedef __declspec(noreturn) VOID CALLBACK(*PCONTROLDISPATCHER)(DWORD);
+
 typedef struct
 {
 } CSRSS_CONNECT_PROCESS_REQUEST, PCSRSS_CONNECT_PROCESS_REQUEST;
@@ -25,6 +27,7 @@ typedef struct
 {
    ULONG NewProcessId;
    ULONG Flags;
+   PCONTROLDISPATCHER CtrlDispatcher;
 } CSRSS_CREATE_PROCESS_REQUEST, *PCSRSS_CREATE_PROCESS_REQUEST;
 
 typedef struct
@@ -49,7 +52,7 @@ typedef struct
 {
    HANDLE ConsoleHandle;
    WORD NrCharactersToRead;
-   WORD nCharsCanBeDeleted;     // number of chars already in buffer that can be backspaced
+   WORD nCharsCanBeDeleted;     /* number of chars already in buffer that can be backspaced */
 } CSRSS_READ_CONSOLE_REQUEST, *PCSRSS_READ_CONSOLE_REQUEST;
 
 typedef struct
@@ -61,6 +64,11 @@ typedef struct
 
 typedef struct
 {
+   PCONTROLDISPATCHER CtrlDispatcher;
+} CSRSS_ALLOC_CONSOLE_REQUEST, *PCSRSS_ALLOC_CONSOLE_REQUEST;
+
+typedef struct
+{
    HANDLE InputHandle;
    HANDLE OutputHandle;
 } CSRSS_ALLOC_CONSOLE_REPLY, *PCSRSS_ALLOC_CONSOLE_REPLY;
@@ -368,6 +376,26 @@ typedef struct
   HANDLE Handle;
 } CSRSS_DUPLICATE_HANDLE_REPLY, *PCSRSS_DUPLICATE_HANDLE_REPLY;
 
+#define CONSOLE_HARDWARE_STATE_GET 0
+#define CONSOLE_HARDWARE_STATE_SET 1
+
+#define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
+#define CONSOLE_HARDWARE_STATE_DIRECT      1
+
+typedef struct
+{
+  HANDLE ConsoleHandle;
+  DWORD SetGet; /* 0=get; 1=set */
+  DWORD State;
+
+} CSRSS_CONSOLE_HARDWARE_STATE, *PCSRSS_CONSOLE_HARDWARE_STATE;
+
+typedef struct
+{
+  HANDLE ConsoleHandle;
+  HWND   WindowHandle;
+} CSRSS_CONSOLE_WINDOW, *PCSRSS_CONSOLE_WINDOW;
+
 #define CSRSS_MAX_WRITE_CONSOLE_REQUEST       \
       (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(CSRSS_WRITE_CONSOLE_REQUEST))
 
@@ -383,7 +411,7 @@ typedef struct
 
 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB  (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST))
 
-// WCHARs, not bytes!
+/* WCHARs, not bytes! */
 #define CSRSS_MAX_TITLE_LENGTH          80
 
 #define CSRSS_CREATE_PROCESS                (0x0)
@@ -427,6 +455,8 @@ typedef struct
 #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)
 
 /* Keep in sync with definition below. */
 #define CSRSS_REQUEST_HEADER_SIZE (sizeof(LPC_MESSAGE) + sizeof(ULONG))
@@ -441,6 +471,7 @@ typedef struct
     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;
@@ -473,6 +504,8 @@ typedef struct
     CSRSS_CLOSE_HANDLE_REQUEST CloseHandleRequest;
     CSRSS_VERIFY_HANDLE_REQUEST VerifyHandleRequest;
     CSRSS_DUPLICATE_HANDLE_REQUEST DuplicateHandleRequest;
+    CSRSS_CONSOLE_HARDWARE_STATE ConsoleHardwareStateRequest;
+    CSRSS_CONSOLE_WINDOW ConsoleWindowRequest;
   } Data;
 } CSRSS_API_REQUEST, *PCSRSS_API_REQUEST;
 
@@ -506,6 +539,8 @@ typedef struct
     CSRSS_GET_INPUT_HANDLE_REPLY GetInputHandleReply;
     CSRSS_GET_OUTPUT_HANDLE_REPLY GetOutputHandleReply;
     CSRSS_DUPLICATE_HANDLE_REPLY DuplicateHandleReply;
+    CSRSS_CONSOLE_HARDWARE_STATE ConsoleHardwareStateReply;
+    CSRSS_CONSOLE_WINDOW ConsoleWindowReply;
   } Data;
 } CSRSS_API_REPLY, *PCSRSS_API_REPLY;