Author: ion
Date: Thu Feb 16 19:53:47 2012
New Revision: 55647

URL: http://svn.reactos.org/svn/reactos?rev=55647&view=rev
Log:
[NTDLL/INCLUDE]: Rename the CSRSRV API Numbers not to conflict with the actual 
functions.
[CSRSRV]: Import server.c from CSRSRV2, and move the existing CsrSrv functions 
we had from wapi.c to server.c (with the reactOS-specific hacks we had). The 
other CsrSrv* functions are not yet used.


Added:
    trunk/reactos/subsystems/win32/csrss/csrsrv/server.c
      - copied, changed from r55585, 
trunk/reactos/subsystems/csr/csrsrv/server.c
Modified:
    trunk/reactos/dll/ntdll/csr/api.c
    trunk/reactos/dll/ntdll/csr/connect.c
    trunk/reactos/include/reactos/subsys/csrss/csrss.h
    trunk/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt
    trunk/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c
    trunk/reactos/subsystems/win32/csrss/csrsrv/csrsrv.rbuild
    trunk/reactos/subsystems/win32/csrss/csrsrv/init.c
    trunk/reactos/subsystems/win32/csrss/include/api.h

Modified: trunk/reactos/dll/ntdll/csr/api.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/csr/api.c?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/dll/ntdll/csr/api.c [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/csr/api.c [iso-8859-1] Thu Feb 16 19:53:47 2012
@@ -48,7 +48,7 @@
     /* Call it */
     Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
                                  NULL,
-                                 CSR_MAKE_OPCODE(CsrSrvSetPriorityClass,
+                                 CSR_MAKE_OPCODE(CsrpSetPriorityClass,
                                                  CSR_SRV_SERVER),
                                  sizeof(CSR_SET_PRIORITY_CLASS));
     
@@ -78,7 +78,7 @@
     /* Call it */
     Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
                                  NULL,
-                                 CSR_MAKE_OPCODE(CsrSrvIdentifyAlertableThread,
+                                 CSR_MAKE_OPCODE(CsrpIdentifyAlertable,
                                                  CSR_SRV_SERVER),
                                  sizeof(CSR_SET_PRIORITY_CLASS));
 

Modified: trunk/reactos/dll/ntdll/csr/connect.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/csr/connect.c?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/dll/ntdll/csr/connect.c [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/csr/connect.c [iso-8859-1] Thu Feb 16 19:53:47 2012
@@ -438,7 +438,7 @@
 #if 0
         Status = CsrClientCallServer(&ApiMessage,
                                      CaptureBuffer,
-                                     CSR_MAKE_OPCODE(CsrSrvClientConnect,
+                                     CSR_MAKE_OPCODE(CsrpClientConnect,
                                                      CSR_SRV_DLL),
                                      sizeof(CSR_CLIENT_CONNECT));
 #endif

Modified: trunk/reactos/include/reactos/subsys/csrss/csrss.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/subsys/csrss/csrss.h?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/include/reactos/subsys/csrss/csrss.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/subsys/csrss/csrss.h [iso-8859-1] Thu Feb 16 
19:53:47 2012
@@ -864,9 +864,15 @@
 /* Types used in the new CSR. Temporarly here for proper compile of NTDLL */
 #define CSR_SRV_SERVER 0
 
-#define CsrSrvClientConnect             0
-#define CsrSrvIdentifyAlertableThread   3
-#define CsrSrvSetPriorityClass          4
+typedef enum _CSR_SRV_API_NUMBER
+{
+    CsrpClientConnect,
+    CsrpThreadConnect,
+    CsrpProfileControl,
+    CsrpIdentifyAlertable,
+    CsrpSetPriorityClass,
+    CsrpMaxApiNumber
+} CSR_SRV_API_NUMBER, *PCSR_SRV_API_NUMBER;
 
 #define CSR_MAKE_OPCODE(s,m) ((s) << 16) | (m)
 

Modified: trunk/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt [iso-8859-1] 
(original)
+++ trunk/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt [iso-8859-1] Thu 
Feb 16 19:53:47 2012
@@ -13,6 +13,7 @@
     init.c
     wait.c
     session.c
+    server.c
     ${CMAKE_CURRENT_BINARY_DIR}/csrsrv.def)
 
 add_library(csrsrv SHARED ${SOURCE})

Modified: trunk/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c [iso-8859-1] 
(original)
+++ trunk/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c [iso-8859-1] Thu Feb 
16 19:53:47 2012
@@ -111,197 +111,6 @@
 
     /* Call the hard error handler in win32csr */
     (VOID)CallHardError(ProcessData, Message);
-}
-
-PVOID CsrSrvSharedSectionHeap;
-PVOID CsrSrvSharedSectionBase;
-PVOID *CsrSrvSharedStaticServerData;
-ULONG CsrSrvSharedSectionSize;
-HANDLE CsrSrvSharedSection;
-
-/*++
- * @name CsrSrvCreateSharedSection
- *
- * The CsrSrvCreateSharedSection creates the Shared Section that all CSR Server
- * DLLs and Clients can use to share data.
- *
- * @param ParameterValue
- *        Specially formatted string from our registry command-line which
- *        specifies various arguments for the shared section.
- *
- * @return STATUS_SUCCESS in case of success, STATUS_UNSUCCESSFUL
- *         othwerwise.
- *
- * @remarks None.
- *
- *--*/
-NTSTATUS
-NTAPI
-CsrSrvCreateSharedSection(IN PCHAR ParameterValue)
-{
-    PCHAR SizeValue = ParameterValue;
-    ULONG Size;
-    NTSTATUS Status;
-    LARGE_INTEGER SectionSize;
-    ULONG ViewSize = 0;
-    SYSTEM_BASIC_INFORMATION CsrNtSysInfo;
-    PPEB Peb = NtCurrentPeb();
-
-    /* ReactOS Hackssss */
-    Status = NtQuerySystemInformation(SystemBasicInformation,
-                                      &CsrNtSysInfo,
-                                      sizeof(SYSTEM_BASIC_INFORMATION),
-                                      NULL);
-    ASSERT(NT_SUCCESS(Status));
-
-    /* Find the first comma, and null terminate */
-    while (*SizeValue)
-    {
-        if (*SizeValue == ',')
-        {
-            *SizeValue++ = '\0';
-            break;
-        }
-        else
-        {
-            SizeValue++;
-        }
-    }
-
-    /* Make sure it's valid */
-    if (!*SizeValue) return STATUS_INVALID_PARAMETER;
-
-    /* Convert it to an integer */
-    Status = RtlCharToInteger(SizeValue, 0, &Size);
-    if (!NT_SUCCESS(Status)) return Status;
-
-    /* Multiply by 1024 entries and round to page size */
-    CsrSrvSharedSectionSize = ROUND_UP(Size * 1024, CsrNtSysInfo.PageSize);
-
-    /* Create the Secion */
-    SectionSize.LowPart = CsrSrvSharedSectionSize;
-    SectionSize.HighPart = 0;
-    Status = NtCreateSection(&CsrSrvSharedSection,
-                             SECTION_ALL_ACCESS,
-                             NULL,
-                             &SectionSize,
-                             PAGE_EXECUTE_READWRITE,
-                             SEC_BASED | SEC_RESERVE,
-                             NULL);
-    if (!NT_SUCCESS(Status)) return Status;
-
-    /* Map the section */
-    Status = NtMapViewOfSection(CsrSrvSharedSection,
-                                NtCurrentProcess(),
-                                &CsrSrvSharedSectionBase,
-                                0,
-                                0,
-                                NULL,
-                                &ViewSize,
-                                ViewUnmap,
-                                MEM_TOP_DOWN,
-                                PAGE_EXECUTE_READWRITE);
-    if(!NT_SUCCESS(Status))
-    {
-        /* Fail */
-        NtClose(CsrSrvSharedSection);
-        return(Status);
-    }
-
-    /* FIXME: Write the value to registry */
-
-    /* The Heap is the same place as the Base */
-    CsrSrvSharedSectionHeap = CsrSrvSharedSectionBase;
-
-    /* Create the heap */
-    if (!(RtlCreateHeap(HEAP_ZERO_MEMORY,
-                        CsrSrvSharedSectionHeap,
-                        CsrSrvSharedSectionSize,
-                        PAGE_SIZE,
-                        0,
-                        0)))
-    {
-        /* Failure, unmap section and return */
-        NtUnmapViewOfSection(NtCurrentProcess(),
-                             CsrSrvSharedSectionBase);
-        NtClose(CsrSrvSharedSection);
-        return STATUS_NO_MEMORY;
-    }
-
-    /* Now allocate space from the heap for the Shared Data */
-    CsrSrvSharedStaticServerData = RtlAllocateHeap(CsrSrvSharedSectionHeap,
-                                                   0,
-                                                   4 * // HAX 
CSR_SERVER_DLL_MAX *
-                                                   sizeof(PVOID));
-
-    /* Write the values to the PEB */
-    Peb->ReadOnlySharedMemoryBase = CsrSrvSharedSectionBase;
-    Peb->ReadOnlySharedMemoryHeap = CsrSrvSharedSectionHeap;
-    Peb->ReadOnlyStaticServerData = CsrSrvSharedStaticServerData;
-
-    /* Return */
-    return STATUS_SUCCESS;
-}
-
-/*++
- * @name CsrSrvAttachSharedSection
- *
- * The CsrSrvAttachSharedSection maps the CSR Shared Section into a new
- * CSR Process' address space, and returns the pointers to the section
- * through the Connection Info structure.
- *
- * @param CsrProcess
- *        Pointer to the CSR Process that is attempting a connection.
- *
- * @param ConnectInfo
- *        Pointer to the CSR Connection Info structure for the incoming
- *        connection.
- *
- * @return STATUS_SUCCESS in case of success, STATUS_UNSUCCESSFUL
- *         othwerwise.
- *
- * @remarks None.
- *
- *--*/
-NTSTATUS
-NTAPI
-CsrSrvAttachSharedSection(IN PCSR_PROCESS CsrProcess OPTIONAL,
-                          OUT PCSR_CONNECTION_INFO ConnectInfo)
-{
-    NTSTATUS Status;
-    ULONG ViewSize = 0;
-
-    /* Check if we have a process */
-    if (CsrProcess)
-    {
-        /* Map the section into this process */
-        DPRINT("CSR Process Handle: %p. CSR Process: %p\n", 
CsrProcess->ProcessHandle, CsrProcess);
-        Status = NtMapViewOfSection(CsrSrvSharedSection,
-                                    CsrProcess->ProcessHandle,
-                                    &CsrSrvSharedSectionBase,
-                                    0,
-                                    0,
-                                    NULL,
-                                    &ViewSize,
-                                    ViewUnmap,
-                                    SEC_NO_CHANGE,
-                                    PAGE_EXECUTE_READ);
-        if (Status == STATUS_CONFLICTING_ADDRESSES)
-        {
-            /* I Think our csrss tries to connect to itself... */
-            DPRINT1("Multiple mapping hack\n");
-            Status = STATUS_SUCCESS;
-        }
-        if (!NT_SUCCESS(Status)) return Status;
-    }
-
-    /* Write the values in the Connection Info structure */
-    ConnectInfo->SharedSectionBase = CsrSrvSharedSectionBase;
-    ConnectInfo->SharedSectionHeap = CsrSrvSharedSectionHeap;
-    ConnectInfo->SharedSectionData = CsrSrvSharedStaticServerData;
-
-    /* Return success */
-    return STATUS_SUCCESS;
 }
 
 /*++

Modified: trunk/reactos/subsystems/win32/csrss/csrsrv/csrsrv.rbuild
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/csrsrv/csrsrv.rbuild?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/csrss/csrsrv/csrsrv.rbuild [iso-8859-1] 
(original)
+++ trunk/reactos/subsystems/win32/csrss/csrsrv/csrsrv.rbuild [iso-8859-1] Thu 
Feb 16 19:53:47 2012
@@ -20,5 +20,6 @@
        <file>init.c</file>
        <file>wait.c</file>
        <file>session.c</file>
+       <file>server.c</file>
        <pch>srv.h</pch>
 </module>

Modified: trunk/reactos/subsystems/win32/csrss/csrsrv/init.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/csrsrv/init.c?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/csrss/csrsrv/init.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/csrss/csrsrv/init.c [iso-8859-1] Thu Feb 16 
19:53:47 2012
@@ -181,10 +181,6 @@
 VOID
 WINAPI
 BasepFakeStaticServerData(VOID);
-
-NTSTATUS
-NTAPI
-CsrSrvCreateSharedSection(IN PCHAR ParameterValue);
 
 /*++
  * @name CsrSetProcessSecurity

Copied: trunk/reactos/subsystems/win32/csrss/csrsrv/server.c (from r55585, 
trunk/reactos/subsystems/csr/csrsrv/server.c)
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/csrsrv/server.c?p2=trunk/reactos/subsystems/win32/csrss/csrsrv/server.c&p1=trunk/reactos/subsystems/csr/csrsrv/server.c&r1=55585&r2=55647&rev=55647&view=diff
==============================================================================
--- trunk/reactos/subsystems/csr/csrsrv/server.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/csrss/csrsrv/server.c [iso-8859-1] Thu Feb 
16 19:53:47 2012
@@ -49,6 +49,39 @@
 HANDLE CsrSrvSharedSection;
 
 /* PRIVATE FUNCTIONS**********************************************************/
+
+/*++
+ * @name CsrServerDllInitialization
+ * @implemented NT4
+ *
+ * The CsrServerDllInitialization is the initialization routine for
+ * the this Server DLL.
+ *
+ * @param LoadedServerDll
+ *        Pointer to the CSR Server DLL structure representing this Server DLL.
+ *
+ * @return STATUS_SUCCESS.
+ *
+ * @remarks None.
+ *
+ *--*/
+NTSTATUS
+NTAPI
+CsrServerDllInitialization(IN PCSR_SERVER_DLL LoadedServerDll)
+{
+    /* Setup the DLL Object */
+    LoadedServerDll->ApiBase = 0;
+    LoadedServerDll->HighestApiSupported = 5;
+    LoadedServerDll->DispatchTable = CsrServerApiDispatchTable;
+    LoadedServerDll->ValidTable = CsrServerApiServerValidTable;
+    LoadedServerDll->NameTable = CsrServerApiNameTable;
+    LoadedServerDll->SizeOfProcessData = 0;
+    LoadedServerDll->ConnectCallback = NULL;
+    LoadedServerDll->DisconnectCallback = NULL;
+
+    /* All done */
+    return STATUS_SUCCESS;
+}
 
 /*++
  * @name CsrLoadServerDll
@@ -173,7 +206,7 @@
     if (NT_SUCCESS(Status))
     {
         /* Get the result from the Server DLL */
-        Status = (*ServerDllInitProcedure)(ServerDll);
+        Status = ServerDllInitProcedure(ServerDll);
 
         /* Check for Success */
         if (NT_SUCCESS(Status))
@@ -215,39 +248,6 @@
 }
 
 /*++
- * @name CsrServerDllInitialization
- * @implemented NT4
- *
- * The CsrServerDllInitialization is the initialization routine for
- * the this Server DLL.
- *
- * @param LoadedServerDll
- *        Pointer to the CSR Server DLL structure representing this Server DLL.
- *
- * @return STATUS_SUCCESS.
- *
- * @remarks None.
- *
- *--*/
-NTSTATUS
-NTAPI
-CsrServerDllInitialization(IN PCSR_SERVER_DLL LoadedServerDll)
-{
-    /* Setup the DLL Object */
-    LoadedServerDll->ApiBase = 0;
-    LoadedServerDll->HighestApiSupported = 5;
-    LoadedServerDll->DispatchTable = CsrServerApiDispatchTable;
-    LoadedServerDll->ValidTable = CsrServerApiServerValidTable;
-    LoadedServerDll->NameTable = CsrServerApiNameTable;
-    LoadedServerDll->SizeOfProcessData = 0;
-    LoadedServerDll->ConnectCallback = NULL;
-    LoadedServerDll->DisconnectCallback = NULL;
-
-    /* All done */
-    return STATUS_SUCCESS;
-}
-
-/*++
  * @name CsrSrvClientConnect
  *
  * The CsrSrvClientConnect CSR API handles a new connection to a server DLL.
@@ -269,6 +269,9 @@
 CsrSrvClientConnect(IN OUT PCSR_API_MESSAGE ApiMessage,
                     IN OUT PULONG Reply OPTIONAL)
 {
+    /* Hack */
+    return STATUS_SUCCESS;
+#if 0
     NTSTATUS Status;
     PCSR_CLIENT_CONNECT ClientConnect;
     PCSR_SERVER_DLL ServerDll;
@@ -283,7 +286,7 @@
     {
         return STATUS_TOO_MANY_NAMES;
     }
-    else if (!(CsrLoadedServerDll[ClientConnect->ServerId]))
+    else if (!CsrLoadedServerDll[ClientConnect->ServerId])
     {
         return STATUS_INVALID_PARAMETER;
     }
@@ -305,9 +308,9 @@
     if (ServerDll->ConnectCallback)
     {
         /* Call the callback */
-        Status = (ServerDll->ConnectCallback)(CurrentProcess,
-                                              ClientConnect->ConnectionInfo,
-                                              
&ClientConnect->ConnectionInfoSize);
+        Status = ServerDll->ConnectCallback(CurrentProcess,
+                                            ClientConnect->ConnectionInfo,
+                                            
&ClientConnect->ConnectionInfoSize);
     }
     else
     {
@@ -317,6 +320,7 @@
 
     /* Return status */
     return Status;
+#endif
 }
 
 /*++
@@ -347,7 +351,7 @@
     PPEB Peb = NtCurrentPeb();
 
     /* If there's no parameter, fail */
-    if (ParameterValue) return STATUS_INVALID_PARAMETER;
+    if (!ParameterValue) return STATUS_INVALID_PARAMETER;
 
     /* Find the first comma, and null terminate */
     while (*SizeValue)
@@ -400,7 +404,7 @@
     {
         /* Fail */
         NtClose(CsrSrvSharedSection);
-        return(Status);
+        return Status;
     }
 
     /* FIXME: Write the value to registry */
@@ -469,7 +473,8 @@
     /* Check if we have a process */
     if (CsrProcess)
     {
-        /* Map the sectio into this process */
+        /* Map the section into this process */
+        DPRINT("CSR Process Handle: %p. CSR Process: %p\n", 
CsrProcess->ProcessHandle, CsrProcess);
         Status = NtMapViewOfSection(CsrSrvSharedSection,
                                     CsrProcess->ProcessHandle,
                                     &CsrSrvSharedSectionBase,
@@ -480,6 +485,12 @@
                                     ViewUnmap,
                                     SEC_NO_CHANGE,
                                     PAGE_EXECUTE_READ);
+        if (Status == STATUS_CONFLICTING_ADDRESSES)
+        {
+            /* I Think our csrss tries to connect to itself... */
+            DPRINT1("Multiple mapping hack\n");
+            Status = STATUS_SUCCESS;
+        }
         if (!NT_SUCCESS(Status)) return Status;
     }
 

Modified: trunk/reactos/subsystems/win32/csrss/include/api.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/include/api.h?rev=55647&r1=55646&r2=55647&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/csrss/include/api.h [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/csrss/include/api.h [iso-8859-1] Thu Feb 16 
19:53:47 2012
@@ -14,6 +14,7 @@
 
 #include <csrss/csrss.h>
 
+#define CSR_SRV_SERVER 0
 #define CSR_SERVER_DLL_MAX 4
 #define LOCK   RtlEnterCriticalSection(&ProcessDataLock)
 #define UNLOCK RtlLeaveCriticalSection(&ProcessDataLock)
@@ -151,6 +152,75 @@
     CSR_API_MESSAGE WaitApiMessage;
 } CSR_WAIT_BLOCK, *PCSR_WAIT_BLOCK;
 
+typedef
+NTSTATUS
+(NTAPI *PCSR_CONNECT_CALLBACK)(
+    IN PCSR_PROCESS CsrProcess,
+    IN OUT PVOID ConnectionInfo,
+    IN OUT PULONG ConnectionInfoLength
+);
+
+typedef
+VOID
+(NTAPI *PCSR_DISCONNECT_CALLBACK)(IN PCSR_PROCESS CsrProcess);
+
+typedef
+NTSTATUS
+(NTAPI *PCSR_NEWPROCESS_CALLBACK)(
+    IN PCSR_PROCESS Parent,
+    IN PCSR_PROCESS CsrProcess
+);
+
+typedef
+VOID
+(NTAPI *PCSR_HARDERROR_CALLBACK)(
+    IN PCSR_THREAD CsrThread,
+    IN PHARDERROR_MSG HardErrorMessage
+);
+
+typedef
+ULONG
+(NTAPI *PCSR_SHUTDOWNPROCESS_CALLBACK)(
+    IN PCSR_PROCESS CsrProcess,
+    IN ULONG Flags,
+    IN BOOLEAN FirstPhase
+);
+
+typedef
+NTSTATUS
+(NTAPI *PCSR_API_ROUTINE)(
+    IN OUT PCSR_API_MESSAGE ApiMessage,
+    IN OUT PULONG Reply
+);
+
+typedef struct _CSR_SERVER_DLL
+{
+    ULONG Length;
+    HANDLE Event;
+    ANSI_STRING Name;
+    HANDLE ServerHandle;
+    ULONG ServerId;
+    ULONG Unknown;
+    ULONG ApiBase;
+    ULONG HighestApiSupported;
+    PCSR_API_ROUTINE *DispatchTable;
+    PBOOLEAN ValidTable;
+    PCHAR *NameTable;
+    ULONG SizeOfProcessData;
+    PCSR_CONNECT_CALLBACK ConnectCallback;
+    PCSR_DISCONNECT_CALLBACK DisconnectCallback;
+    PCSR_HARDERROR_CALLBACK HardErrorCallback;
+    PVOID SharedSection;
+    PCSR_NEWPROCESS_CALLBACK NewProcessCallback;
+    PCSR_SHUTDOWNPROCESS_CALLBACK ShutdownProcessCallback;
+    ULONG Unknown2[3];
+} CSR_SERVER_DLL, *PCSR_SERVER_DLL;
+
+typedef
+NTSTATUS
+(NTAPI *PCSR_SERVER_DLL_INIT_CALLBACK)(IN PCSR_SERVER_DLL ServerDll);
+
+
 typedef NTSTATUS (WINAPI *CSRSS_API_PROC)(PCSR_PROCESS ProcessData,
                                            PCSR_API_MESSAGE Request);
 
@@ -237,6 +307,11 @@
 extern RTL_CRITICAL_SECTION ProcessDataLock, CsrWaitListsLock;
 extern UNICODE_STRING CsrDirectoryName;
 extern ULONG CsrDebug;
+extern ULONG CsrTotalPerProcessDataLength;
+extern SYSTEM_BASIC_INFORMATION CsrNtSysInfo;
+extern PVOID CsrSrvSharedSectionHeap;
+extern PVOID *CsrSrvSharedStaticServerData;
+extern HANDLE CsrInitializationEvent;
 
 NTSTATUS
 NTAPI
@@ -273,6 +348,43 @@
 NTAPI
 CsrInitializeNtSessionList(VOID);
 
+NTSTATUS
+NTAPI
+CsrSrvAttachSharedSection(IN PCSR_PROCESS CsrProcess OPTIONAL,
+OUT PCSR_CONNECTION_INFO ConnectInfo);
+
+NTSTATUS
+NTAPI
+CsrSrvCreateSharedSection(IN PCHAR ParameterValue);
+
+NTSTATUS
+NTAPI
+CsrSrvClientConnect(
+    IN OUT PCSR_API_MESSAGE ApiMessage,
+    IN OUT PULONG Reply
+);
+
+NTSTATUS
+NTAPI
+CsrSrvUnusedFunction(
+    IN OUT PCSR_API_MESSAGE ApiMessage,
+    IN OUT PULONG Reply
+);
+
+NTSTATUS
+NTAPI
+CsrSrvIdentifyAlertableThread(
+    IN OUT PCSR_API_MESSAGE ApiMessage,
+    IN OUT PULONG Reply
+);
+
+NTSTATUS
+NTAPI
+CsrSrvSetPriorityClass(
+    IN OUT PCSR_API_MESSAGE ApiMessage,
+    IN OUT PULONG Reply
+);
+
 /* api/user.c */
 CSR_API(CsrRegisterServicesProcess);
 


Reply via email to