Hackfix for Far 1.65.
[reactos.git] / reactos / include / reactos / subsys / csrss / csrss.h
index 1f276fa..454de4c 100644 (file)
@@ -22,7 +22,7 @@ typedef ULONG CSR_API_NUMBER;
 #define MAKE_CSR_API(Number, Server) \
     ((Server) << 16) + Number
 
-#define CSR_CSRSS_SECTION_SIZE          (65536)
+#define CSR_CSRSS_SECTION_SIZE          (131072) //(65536)
 
 typedef VOID (CALLBACK *PCONTROLDISPATCHER)(DWORD);
 
@@ -51,10 +51,9 @@ typedef struct
 
 typedef struct
 {
-  ULONG nMaxIds;
-   ULONG nProcessIdsCopied;
-   ULONG nProcessIdsTotal;
-   HANDLE ProcessId[0];
+    USHORT nMaxIds;
+    PDWORD ProcessId;
+    ULONG nProcessIdsTotal;
 } CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;
 
 typedef struct
@@ -63,6 +62,7 @@ typedef struct
    BOOL Unicode;
    ULONG NrCharactersToWrite;
    ULONG NrCharactersWritten;
+   HANDLE UnpauseEvent;
    BYTE Buffer[0];
 } CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
 
@@ -71,16 +71,19 @@ typedef struct
    HANDLE ConsoleHandle;
    BOOL Unicode;
    WORD NrCharactersToRead;
-   WORD nCharsCanBeDeleted;     /* number of chars already in buffer that can be backspaced */
+   WORD NrCharactersRead;
    HANDLE EventHandle;
-   ULONG NrCharactersRead;
-   BYTE Buffer[0];
+   PVOID Buffer;
+   UNICODE_STRING ExeName;
+   DWORD CtrlWakeupMask;
+   DWORD ControlKeyState;
 } CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;
 
 typedef struct
 {
    PCONTROLDISPATCHER CtrlDispatcher;
-   BOOL ConsoleNeeded;
+   BOOLEAN ConsoleNeeded;
+   BOOLEAN Visible;
    HANDLE Console;
    HANDLE InputHandle;
    HANDLE OutputHandle;
@@ -206,13 +209,13 @@ typedef struct
 typedef struct
 {
   DWORD Length;
-  WCHAR Title[0];
+  PWCHAR Title;
 } CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
 
 typedef struct
 {
   DWORD Length;
-  WCHAR Title[0];
+  PWCHAR Title;
 } CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
 
 typedef struct
@@ -320,15 +323,10 @@ typedef struct
 {
   DWORD Access;
   BOOL Inheritable;
-  HANDLE InputHandle;
-} CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE;
-
-typedef struct
-{
-  DWORD Access;
-  BOOL Inheritable;
-  HANDLE OutputHandle;
-} CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
+  HANDLE Handle;
+  DWORD ShareMode;
+} CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE,
+  CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
 
 typedef struct
 {
@@ -472,20 +470,60 @@ typedef struct
   DWORD ProcessGroup;
 } CSRSS_GENERATE_CTRL_EVENT, *PCSRSS_GENERATE_CTRL_EVENT;
 
+typedef struct
+{
+  HANDLE OutputHandle;
+  COORD Size;
+} CSRSS_SET_SCREEN_BUFFER_SIZE, *PCSRSS_SET_SCREEN_BUFFER_SIZE;
+
+typedef struct
+{
+  CONSOLE_SELECTION_INFO Info;
+} CSRSS_GET_CONSOLE_SELECTION_INFO, *PCSRSS_GET_CONSOLE_SELECTION_INFO;
+
+typedef struct
+{
+  UNICODE_STRING ExeName;
+  DWORD Length;
+} CSRSS_GET_COMMAND_HISTORY_LENGTH, *PCSRSS_GET_COMMAND_HISTORY_LENGTH;
+
+typedef struct
+{
+  UNICODE_STRING ExeName;
+  PWCHAR History;
+  DWORD Length;
+} CSRSS_GET_COMMAND_HISTORY, *PCSRSS_GET_COMMAND_HISTORY;
 
+typedef struct
+{
+  UNICODE_STRING ExeName;
+} CSRSS_EXPUNGE_COMMAND_HISTORY, *PCSRSS_EXPUNGE_COMMAND_HISTORY;
+
+typedef struct
+{
+  UNICODE_STRING ExeName;
+  DWORD NumCommands;
+} CSRSS_SET_HISTORY_NUMBER_COMMANDS, *PCSRSS_SET_HISTORY_NUMBER_COMMANDS;
+
+typedef struct
+{
+  DWORD HistoryBufferSize;
+  DWORD NumberOfHistoryBuffers;
+  DWORD dwFlags;
+} CSRSS_GET_HISTORY_INFO, *PCSRSS_GET_HISTORY_INFO,
+  CSRSS_SET_HISTORY_INFO, *PCSRSS_SET_HISTORY_INFO;;
+
+typedef struct
+{
+  UINT UniqueID;
+} CSRSS_GET_TEMP_FILE, *PCSRSS_GET_TEMP_FILE;
 
 #define CSR_API_MESSAGE_HEADER_SIZE(Type)       (FIELD_OFFSET(CSR_API_MESSAGE, Data) + sizeof(Type))
 #define CSRSS_MAX_WRITE_CONSOLE                 (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE))
 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR     (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_CHAR))
 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB   (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB))
-#define CSRSS_MAX_READ_CONSOLE                  (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE))
 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_CHAR      (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE_OUTPUT_CHAR))
 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB    (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB))
-#define CSRSS_MAX_GET_PROCESS_LIST              (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_GET_PROCESS_LIST))
-
-/* WCHARs, not bytes! */
-#define CSRSS_MAX_TITLE_LENGTH          80
-#define CSRSS_MAX_ALIAS_TARGET_LENGTH   80
 
 #define CREATE_PROCESS                (0x0)
 #define TERMINATE_PROCESS             (0x1)
@@ -551,6 +589,15 @@ typedef struct
 #define GET_CONSOLE_ALIASES_EXES_LENGTH (0x3D)
 #define GENERATE_CTRL_EVENT           (0x3E)
 #define CREATE_THREAD                 (0x3F)
+#define SET_SCREEN_BUFFER_SIZE        (0x40)
+#define GET_CONSOLE_SELECTION_INFO    (0x41)
+#define GET_COMMAND_HISTORY_LENGTH    (0x42)
+#define GET_COMMAND_HISTORY           (0x43)
+#define EXPUNGE_COMMAND_HISTORY       (0x44)
+#define SET_HISTORY_NUMBER_COMMANDS   (0x45)
+#define GET_HISTORY_INFO              (0x46)
+#define SET_HISTORY_INFO              (0x47)
+#define GET_TEMP_FILE                 (0x48)
 
 /* Keep in sync with definition below. */
 #define CSRSS_HEADER_SIZE (sizeof(PORT_MESSAGE) + sizeof(ULONG) + sizeof(NTSTATUS))
@@ -624,6 +671,15 @@ typedef struct _CSR_API_MESSAGE
         CSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes;
         CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength;
         CSRSS_GENERATE_CTRL_EVENT GenerateCtrlEvent;
+        CSRSS_SET_SCREEN_BUFFER_SIZE SetScreenBufferSize;
+        CSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo;
+        CSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength;
+        CSRSS_GET_COMMAND_HISTORY GetCommandHistory;
+        CSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory;
+        CSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands;
+        CSRSS_GET_HISTORY_INFO GetHistoryInfo;
+        CSRSS_SET_HISTORY_INFO SetHistoryInfo;
+        CSRSS_GET_TEMP_FILE GetTempFile;
     } Data;
 } CSR_API_MESSAGE, *PCSR_API_MESSAGE;