[CSRSRV]
[reactos.git] / include / reactos / subsys / csr / csrsrv.h
index 55d4e68..87337ca 100644 (file)
@@ -1,7 +1,8 @@
 /*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/subsys/csrss/csrsrv.h
- * PURPOSE:         Public Definitions for CSR Servers
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Client/Server Runtime SubSystem
+ * FILE:            include/reactos/subsys/csr/csrsrv.h
+ * PURPOSE:         Public definitions for CSR Servers
  * PROGRAMMERS:     Alex Ionescu (alex@relsoft.net)
  *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
  */
 
 #include "csrmsg.h"
 
-/* TYPES **********************************************************************/
+
+/* STRUCTURES *****************************************************************/
+
+// Used in ntdll/csr/connect.c
+#define CSR_CSRSS_SECTION_SIZE  65536
 
 typedef struct _CSR_NT_SESSION
 {
@@ -29,20 +34,6 @@ typedef struct _CSR_NT_SESSION
     ULONG SessionId;
 } CSR_NT_SESSION, *PCSR_NT_SESSION;
 
-/*** old thingie, remove it later... (put it in winsrv -- console) ***/
-typedef struct _CSRSS_CON_PROCESS_DATA
-{
-    HANDLE ConsoleEvent;
-    struct tagCSRSS_CONSOLE *Console;
-    struct tagCSRSS_CONSOLE *ParentConsole;
-    BOOL bInheritHandles;
-    RTL_CRITICAL_SECTION HandleTableLock;
-    ULONG HandleTableSize;
-    struct _CSRSS_HANDLE *HandleTable;
-    PCONTROLDISPATCHER CtrlDispatcher;
-    LIST_ENTRY ConsoleLink;
-} CSRSS_CON_PROCESS_DATA, *PCSRSS_CON_PROCESS_DATA;
-/*********************************************************************/
 typedef struct _CSR_PROCESS
 {
     CLIENT_ID ClientId;
@@ -68,8 +59,7 @@ typedef struct _CSR_PROCESS
     ULONG Reserved;
     ULONG ShutdownLevel;
     ULONG ShutdownFlags;
-    PVOID ServerData[ANYSIZE_ARRAY]; // ServerDllPerProcessData // One structure per CSR server.
-    CSRSS_CON_PROCESS_DATA; //// FIXME: Remove it after we activate the previous member.
+    PVOID ServerData[ANYSIZE_ARRAY];    // One structure per CSR server.
 } CSR_PROCESS, *PCSR_PROCESS;
 
 typedef struct _CSR_THREAD
@@ -113,7 +103,7 @@ typedef enum _CSR_PROCESS_FLAGS
 
 typedef enum _CSR_THREAD_FLAGS
 {
-    CsrThreadAltertable     = 0x1,
+    CsrThreadAlertable      = 0x1,
     CsrThreadInTermination  = 0x2,
     CsrThreadTerminated     = 0x4,
     CsrThreadIsServerThread = 0x10
@@ -138,6 +128,16 @@ typedef enum _CSR_DEBUG_FLAGS
     CsrDebugProcessChildren = 2
 } CSR_PROCESS_DEBUG_FLAGS, *PCSR_PROCESS_DEBUG_FLAGS;
 
+typedef enum _CSR_REPLY_CODE
+{
+    CsrReplyImmediately = 0,
+    CsrReplyPending     = 1,
+    CsrReplyDeadClient  = 2,
+    CsrReplyAlreadyDone = 3
+} CSR_REPLY_CODE, *PCSR_REPLY_CODE;
+
+
+/* FUNCTION TYPES AND STRUCTURES **********************************************/
 
 /*
  * Wait block
@@ -173,13 +173,12 @@ typedef
 NTSTATUS
 (NTAPI *PCSR_API_ROUTINE)(
     IN OUT PCSR_API_MESSAGE ApiMessage,
-    OUT PULONG Reply
+    IN OUT PCSR_REPLY_CODE  ReplyCode OPTIONAL
 );
 
-#define CSR_API(n) NTSTATUS NTAPI n(    \
-    IN OUT PCSR_API_MESSAGE ApiMessage, \
-    OUT PULONG Reply)
-    // IN OUT PCSR_REPLY_STATUS ReplyStatus)
+#define CSR_API(n)                                          \
+    NTSTATUS NTAPI n(IN OUT PCSR_API_MESSAGE ApiMessage,    \
+                     IN OUT PCSR_REPLY_CODE  ReplyCode OPTIONAL)
 
 typedef
 NTSTATUS
@@ -239,13 +238,12 @@ typedef struct _CSR_SERVER_DLL
 } CSR_SERVER_DLL, *PCSR_SERVER_DLL;
 
 
-/* FUNCTION TYPES *************************************************************/
-
 typedef
 NTSTATUS
 (NTAPI *PCSR_SERVER_DLL_INIT_CALLBACK)(IN PCSR_SERVER_DLL LoadedServerDll);
 
-#define CSR_SERVER_DLL_INIT(n) NTSTATUS NTAPI n(IN PCSR_SERVER_DLL LoadedServerDll)
+#define CSR_SERVER_DLL_INIT(n)  \
+    NTSTATUS NTAPI n(IN PCSR_SERVER_DLL LoadedServerDll)
 
 
 /* PROTOTYPES ****************************************************************/
@@ -301,7 +299,8 @@ NTSTATUS
 NTAPI
 CsrCreateThread(IN PCSR_PROCESS CsrProcess,
                 IN HANDLE hThread,
-                IN PCLIENT_ID ClientId);
+                IN PCLIENT_ID ClientId,
+                IN BOOLEAN HaveClient);
 
 BOOLEAN
 NTAPI
@@ -426,8 +425,8 @@ BOOLEAN
 NTAPI
 CsrValidateMessageBuffer(IN PCSR_API_MESSAGE ApiMessage,
                          IN PVOID *Buffer,
-                         IN ULONG ArgumentSize,
-                         IN ULONG ArgumentCount);
+                         IN ULONG ElementCount,
+                         IN ULONG ElementSize);
 
 BOOLEAN
 NTAPI
@@ -440,6 +439,6 @@ CsrValidateMessageString(IN PCSR_API_MESSAGE ApiMessage,
 #endif
 */
 
-#endif // _CSRSERVER_H
+#endif // _CSRSRV_H
 
 /* EOF */