Hackfix for Far 1.65.
[reactos.git] / reactos / include / reactos / subsys / csrss / csrss.h
index 35c02f2..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);
 
@@ -38,6 +38,12 @@ typedef struct
    BOOL bInheritHandles;
 } CSRSS_CREATE_PROCESS, *PCSRSS_CREATE_PROCESS;
 
+typedef struct
+{
+    CLIENT_ID ClientId;
+    HANDLE ThreadHandle;
+} CSRSS_CREATE_THREAD, *PCSRSS_CREATE_THREAD;
+
 typedef struct
 {
     ULONG Dummy;
@@ -45,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
@@ -57,6 +62,7 @@ typedef struct
    BOOL Unicode;
    ULONG NrCharactersToWrite;
    ULONG NrCharactersWritten;
+   HANDLE UnpauseEvent;
    BYTE Buffer[0];
 } CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
 
@@ -65,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;
@@ -163,7 +172,7 @@ typedef struct
 typedef struct
 {
    HANDLE ConsoleHandle;
-   CHAR Attrib;
+   WORD Attrib;
 } CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
 
 typedef struct
@@ -180,7 +189,9 @@ typedef struct
 
 typedef struct
 {
-  /* may want to add some parameters here someday */
+   DWORD Access;
+   DWORD ShareMode;
+   BOOL Inheritable;
    HANDLE OutputHandle;  /* handle to newly created screen buffer */
 } CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
 
@@ -197,16 +208,14 @@ typedef struct
 
 typedef struct
 {
-  HANDLE Console;
   DWORD Length;
-  WCHAR Title[0];
+  PWCHAR Title;
 } CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
 
 typedef struct
 {
-  HANDLE ConsoleHandle;
   DWORD Length;
-  WCHAR Title[0];
+  PWCHAR Title;
 } CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
 
 typedef struct
@@ -312,13 +321,12 @@ typedef struct
 
 typedef struct
 {
-  HANDLE InputHandle;
-} CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE;
-
-typedef struct
-{
-  HANDLE OutputHandle;
-} CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
+  DWORD Access;
+  BOOL Inheritable;
+  HANDLE Handle;
+  DWORD ShareMode;
+} CSRSS_GET_INPUT_HANDLE, *PCSRSS_GET_INPUT_HANDLE,
+  CSRSS_GET_OUTPUT_HANDLE, *PCSRSS_GET_OUTPUT_HANDLE;
 
 typedef struct
 {
@@ -333,7 +341,9 @@ typedef struct
 typedef struct
 {
   HANDLE Handle;
-  HANDLE ProcessId;
+  DWORD Access;
+  BOOL Inheritable;
+  DWORD Options;
 } CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
 
 #define CONSOLE_HARDWARE_STATE_GET 0
@@ -414,19 +424,18 @@ typedef struct
 
 typedef struct
 {
-    LPCWSTR lpSource;
-    LPCWSTR lpTarget;
-    LPCWSTR lpExeName;
+    ULONG SourceLength;
+    ULONG ExeLength;
+    ULONG TargetLength;
 } CSRSS_ADD_CONSOLE_ALIAS, *PCSRSS_ADD_CONSOLE_ALIAS;
 
 typedef struct
 {
-  LPWSTR lpSource;
-  LPWSTR lpExeName;
-  DWORD BytesWritten;
-  DWORD TargetBufferLength;
-  LPWSTR TargetBuffer;
-
+    ULONG SourceLength;
+    ULONG ExeLength;
+    ULONG BytesWritten;
+    ULONG TargetBufferLength;
+    PVOID TargetBuffer;
 } CSRSS_GET_CONSOLE_ALIAS, *PCSRSS_GET_CONSOLE_ALIAS;
 
 typedef struct
@@ -435,7 +444,7 @@ typedef struct
   DWORD BytesWritten;
   DWORD AliasBufferLength;
   LPWSTR AliasBuffer;
-} CSRSS_GET_ALL_CONSOLE_ALIAS, *PCSRSS_GET_ALL_CONSOLE_ALIAS;
+} CSRSS_GET_ALL_CONSOLE_ALIASES, *PCSRSS_GET_ALL_CONSOLE_ALIAS;
 
 typedef struct
 {
@@ -445,7 +454,6 @@ typedef struct
 
 typedef struct
 {
-  BOOL Unicode;
   DWORD BytesWritten;
   DWORD Length;
   LPWSTR ExeNames;
@@ -453,23 +461,69 @@ typedef struct
 
 typedef struct
 {
-  BOOL Unicode;
   DWORD Length;
 } CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH, *PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH;
 
+typedef struct
+{
+  DWORD Event;
+  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 CREATE_PROCESS                (0x0)
 #define TERMINATE_PROCESS             (0x1)
@@ -529,10 +583,21 @@ typedef struct
 #define START_SCREEN_SAVER            (0x37)
 #define ADD_CONSOLE_ALIAS             (0x38)
 #define GET_CONSOLE_ALIAS             (0x39)
-#define GET_ALL_CONSOLE_ALIAS         (0x3A)
+#define GET_ALL_CONSOLE_ALIASES         (0x3A)
 #define GET_ALL_CONSOLE_ALIASES_LENGTH (0x3B)
 #define GET_CONSOLE_ALIASES_EXES      (0x3C)
 #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))
@@ -546,6 +611,7 @@ typedef struct _CSR_API_MESSAGE
     union
     {
         CSRSS_CREATE_PROCESS CreateProcessRequest;
+        CSRSS_CREATE_THREAD CreateThreadRequest;
         CSRSS_CONNECT_PROCESS ConnectRequest;
         CSRSS_WRITE_CONSOLE WriteConsoleRequest;
         CSRSS_READ_CONSOLE ReadConsoleRequest;
@@ -600,10 +666,20 @@ typedef struct _CSR_API_MESSAGE
         CSRSS_GET_PROCESS_LIST GetProcessListRequest;
         CSRSS_ADD_CONSOLE_ALIAS AddConsoleAlias;
         CSRSS_GET_CONSOLE_ALIAS GetConsoleAlias;
-        CSRSS_GET_ALL_CONSOLE_ALIAS GetAllConsoleAlias;
+        CSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAlias;
         CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength;
         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;