Some guessing on the API used by server DLLs.
Modified: trunk/reactos/include/subsys/csr/protocol.h
Modified: trunk/reactos/include/subsys/csr/server.h

Modified: trunk/reactos/include/subsys/csr/protocol.h
--- trunk/reactos/include/subsys/csr/protocol.h	2005-08-11 03:23:44 UTC (rev 17277)
+++ trunk/reactos/include/subsys/csr/protocol.h	2005-08-11 07:13:03 UTC (rev 17278)
@@ -34,4 +34,4 @@
     // 
 } CSR_PORT_MESSAGE_HEADER, * PCSR_PORT_MESSAGE_HEADER;
 
-#endif /* ndef __INCLUDE_CSR_LPCPROTO_H */
+#endif /* ndef __INCLUDE_CSR_PROTOCOL_H */

Modified: trunk/reactos/include/subsys/csr/server.h
--- trunk/reactos/include/subsys/csr/server.h	2005-08-11 03:23:44 UTC (rev 17277)
+++ trunk/reactos/include/subsys/csr/server.h	2005-08-11 07:13:03 UTC (rev 17278)
@@ -5,7 +5,9 @@
 
 typedef struct _CSR_SESSION
 {
-	ULONG SessionId;
+	ULONG   SessionId;
+	HANDLE  Heap;
+	PVOID   ServerData;
 
 } CSR_SESSION, * PCSR_SESSION;
 
@@ -13,7 +15,9 @@
 typedef struct _CSR_PROCESS
 {
 	HANDLE        Process;
+	PCSR_SESSION  CsrSession;
 	ULONG         ReferenceCount;
+	PVOID         ServerData;
 	
 } CSR_PROCESS, * PCSR_PROCESS;
 
@@ -23,6 +27,7 @@
 	PCSR_SESSION  CsrSession;
 	PCSR_PROCESS  CsrProcess;
 	ULONG         ReferenceCount;
+	PVOID         ServerData;
 	
 } CSR_THREAD, * PCSR_THREAD;
 
@@ -36,39 +41,38 @@
 
 NTSTATUS STDCALL CsrAddStaticServerThread();
 NTSTATUS STDCALL CsrCallServerFromServer();
-NTSTATUS STDCALL CsrConnectToUser();
-NTSTATUS STDCALL CsrCreateProcess();
+NTSTATUS STDCALL CsrCreateProcess(PCSR_SESSION,PCSR_PROCESS*);
 NTSTATUS STDCALL CsrCreateRemoteThread();
-NTSTATUS STDCALL CsrCreateSession();
-NTSTATUS STDCALL CsrCreateThread();
-NTSTATUS STDCALL CsrCreateWait();
-NTSTATUS STDCALL CsrDebugProcess();
-NTSTATUS STDCALL CsrDebugProcessStop();
-NTSTATUS STDCALL CsrDereferenceProcess();
-NTSTATUS STDCALL CsrDereferenceThread();
-NTSTATUS STDCALL CsrDereferenceWait();
-NTSTATUS STDCALL CsrDestroyProcess();
-NTSTATUS STDCALL CsrDestroyThread();
+NTSTATUS STDCALL CsrCreateSession(PCSR_SESSION*);
+NTSTATUS STDCALL CsrCreateThread(PCSR_PROCESS,PCSR_THREAD*);
+NTSTATUS STDCALL CsrCreateWait(PCSR_THREAD,PCSR_WAIT*);
+NTSTATUS STDCALL CsrDebugProcess(PCSR_PROCESS);
+NTSTATUS STDCALL CsrDebugProcessStop(PCSR_PROCESS);
+NTSTATUS STDCALL CsrDereferenceProcess(PCSR_PROCESS);
+NTSTATUS STDCALL CsrDereferenceThread(PCSR_THREAD);
+NTSTATUS STDCALL CsrDereferenceWait(PCSR_WAIT);
+NTSTATUS STDCALL CsrDestroyProcess(PCSR_PROCESS);
+NTSTATUS STDCALL CsrDestroySession (PCSR_SESSION);
+NTSTATUS STDCALL CsrDestroyThread(PCSR_THREAD);
 NTSTATUS STDCALL CsrExecServerThread();
 NTSTATUS STDCALL CsrGetApiPorts(PHANDLE,PHANDLE);
-NTSTATUS STDCALL CsrGetProcessLuid();
+NTSTATUS STDCALL CsrGetProcessLuid(PCSR_PROCESS,PLUID);
 NTSTATUS STDCALL CsrImpersonateClient();
 NTSTATUS STDCALL CsrLockProcessByClientId();
 NTSTATUS STDCALL CsrLockThreadByClientId();
-NTSTATUS STDCALL CsrMoveSatisfiedWait();
-NTSTATUS STDCALL CsrNotifyWait();
-NTSTATUS STDCALL CsrPopulateDosDevices();
+NTSTATUS STDCALL CsrMoveSatisfiedWait(PCSR_WAIT);
+NTSTATUS STDCALL CsrNotifyWait(PCSR_WAIT);
 HANDLE   STDCALL CsrQueryApiPort(VOID);
-NTSTATUS STDCALL CsrReferenceThread();
+NTSTATUS STDCALL CsrReferenceThread(PCSR_THREAD);
 NTSTATUS STDCALL CsrRevertToSelf();
 NTSTATUS STDCALL CsrServerInitialization(ULONG,LPWSTR*);
 NTSTATUS STDCALL CsrSetBackgroundPriority();
 NTSTATUS STDCALL CsrSetCallingSpooler();
 NTSTATUS STDCALL CsrSetForegroundPriority();
-NTSTATUS STDCALL CsrShutdownProcesses();
+NTSTATUS STDCALL CsrShutdownProcesses(PCSR_SESSION);
 NTSTATUS STDCALL CsrUnhandledExceptionFilter();
-NTSTATUS STDCALL CsrUnlockProcess();
-NTSTATUS STDCALL CsrUnlockThread();
+NTSTATUS STDCALL CsrUnlockProcess(PCSR_PROCESS);
+NTSTATUS STDCALL CsrUnlockThread(PCSR_THREAD);
 NTSTATUS STDCALL CsrValidateMessageBuffer();
 NTSTATUS STDCALL CsrValidateMessageString();