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();