X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fsubsystems%2Fwin32%2Fcsrsrv%2Fserver.c;h=2ac9ba8cd72b9794a1a3880418d5ab207cfa0fb9;hp=668a0f465e3cff40facaff9a28d9b4d7995f78cc;hb=d6e07f60b4d010c067b21be57cd4b171f0c0f553;hpb=7e36ed9fa81f1e7daba8c4ed90a3b27dc9efc0e2 diff --git a/reactos/subsystems/win32/csrsrv/server.c b/reactos/subsystems/win32/csrsrv/server.c index 668a0f465e3..2ac9ba8cd72 100644 --- a/reactos/subsystems/win32/csrsrv/server.c +++ b/reactos/subsystems/win32/csrsrv/server.c @@ -10,11 +10,20 @@ #include "srv.h" +#include + #define NDEBUG #include /* DATA ***********************************************************************/ +PCSR_SERVER_DLL CsrLoadedServerDll[CSR_SERVER_DLL_MAX]; +PVOID CsrSrvSharedSectionHeap = NULL; +PVOID CsrSrvSharedSectionBase = NULL; +PVOID *CsrSrvSharedStaticServerData = NULL; +ULONG CsrSrvSharedSectionSize = 0; +HANDLE CsrSrvSharedSection = NULL; + PCSR_API_ROUTINE CsrServerApiDispatchTable[CsrpMaxApiNumber] = { CsrSrvClientConnect, @@ -33,6 +42,11 @@ BOOLEAN CsrServerApiServerValidTable[CsrpMaxApiNumber] = TRUE }; +/* + * On Windows Server 2003, CSR Servers contain + * the API Names Table only in Debug Builds. + */ +#ifdef CSR_DBG PCHAR CsrServerApiNameTable[CsrpMaxApiNumber] = { "ClientConnect", @@ -41,13 +55,7 @@ PCHAR CsrServerApiNameTable[CsrpMaxApiNumber] = "IdentifyAlertableThread", "SetPriorityClass" }; - -PCSR_SERVER_DLL CsrLoadedServerDll[CSR_SERVER_DLL_MAX]; -PVOID CsrSrvSharedSectionHeap = NULL; -PVOID CsrSrvSharedSectionBase = NULL; -PVOID *CsrSrvSharedStaticServerData = NULL; -ULONG CsrSrvSharedSectionSize = 0; -HANDLE CsrSrvSharedSection = NULL; +#endif /* PRIVATE FUNCTIONS **********************************************************/ @@ -69,11 +77,13 @@ HANDLE CsrSrvSharedSection = NULL; CSR_SERVER_DLL_INIT(CsrServerDllInitialization) { /* Setup the DLL Object */ - LoadedServerDll->ApiBase = 0; + LoadedServerDll->ApiBase = CSRSRV_FIRST_API_NUMBER; LoadedServerDll->HighestApiSupported = CsrpMaxApiNumber; LoadedServerDll->DispatchTable = CsrServerApiDispatchTable; LoadedServerDll->ValidTable = CsrServerApiServerValidTable; +#ifdef CSR_DBG LoadedServerDll->NameTable = CsrServerApiNameTable; +#endif LoadedServerDll->SizeOfProcessData = 0; LoadedServerDll->ConnectCallback = NULL; LoadedServerDll->DisconnectCallback = NULL; @@ -167,8 +177,8 @@ CsrLoadServerDll(IN PCHAR DllString, /* Set up the Object */ ServerDll->Length = Size; + ServerDll->SizeOfProcessData = 0; ServerDll->SharedSection = CsrSrvSharedSectionHeap; // Send to the server dll our shared heap pointer. - ServerDll->Event = CsrInitializationEvent; ServerDll->Name.Length = DllName.Length; ServerDll->Name.MaximumLength = DllName.MaximumLength; ServerDll->Name.Buffer = (PCHAR)(ServerDll + 1); @@ -469,7 +479,7 @@ CsrSrvAttachSharedSection(IN PCSR_PROCESS CsrProcess OPTIONAL, /* Write the values in the Connection Info structure */ ConnectInfo->SharedSectionBase = CsrSrvSharedSectionBase; ConnectInfo->SharedSectionHeap = CsrSrvSharedSectionHeap; - ConnectInfo->SharedSectionData = CsrSrvSharedStaticServerData; + ConnectInfo->SharedStaticServerData = CsrSrvSharedStaticServerData; /* Return success */ return STATUS_SUCCESS;