/*
- * 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
{
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;
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
typedef enum _CSR_THREAD_FLAGS
{
- CsrThreadAltertable = 0x1,
+ CsrThreadAlertable = 0x1,
CsrThreadInTermination = 0x2,
CsrThreadTerminated = 0x4,
CsrThreadIsServerThread = 0x10
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
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
} 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 ****************************************************************/
NTAPI
CsrCreateThread(IN PCSR_PROCESS CsrProcess,
IN HANDLE hThread,
- IN PCLIENT_ID ClientId);
+ IN PCLIENT_ID ClientId,
+ IN BOOLEAN HaveClient);
BOOLEAN
NTAPI
NTAPI
CsrValidateMessageBuffer(IN PCSR_API_MESSAGE ApiMessage,
IN PVOID *Buffer,
- IN ULONG ArgumentSize,
- IN ULONG ArgumentCount);
+ IN ULONG ElementCount,
+ IN ULONG ElementSize);
BOOLEAN
NTAPI
#endif
*/
-#endif // _CSRSERVER_H
+#endif // _CSRSRV_H
/* EOF */