Author: hbelusca Date: Mon Dec 22 19:50:00 2014 New Revision: 65798
URL: http://svn.reactos.org/svn/reactos?rev=65798&view=rev Log: [USERSRV] - Reenable UserClientConnect callback, it's not the problematic code that made bots to fail at 3rd stage and caused r65716 to be committed. - Put the system threads hack *after* having called NtUserInitialize (that really initializes user-kernel interface with win32k), and not before.
Modified: trunk/reactos/win32ss/user/winsrv/usersrv/init.c
Modified: trunk/reactos/win32ss/user/winsrv/usersrv/init.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/usersrv... ============================================================================== --- trunk/reactos/win32ss/user/winsrv/usersrv/init.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/usersrv/init.c [iso-8859-1] Mon Dec 22 19:50:00 2014 @@ -191,12 +191,7 @@
CSR_SERVER_DLL_INIT(UserServerDllInitialization) { -/*** From win32csr... ***/ - HANDLE ServerThread; - CLIENT_ID ClientId; NTSTATUS Status; - UINT i; -/*** END - From win32csr... ***/
/* Initialize the memory */ UserServerHeap = RtlGetProcessHeap(); @@ -210,36 +205,12 @@ LoadedServerDll->NameTable = UserServerApiNameTable; #endif LoadedServerDll->SizeOfProcessData = 0; -#if 0 LoadedServerDll->ConnectCallback = UserClientConnect; -#else - LoadedServerDll->ConnectCallback = NULL; -#endif LoadedServerDll->DisconnectCallback = NULL; LoadedServerDll->HardErrorCallback = UserServerHardError; LoadedServerDll->ShutdownProcessCallback = UserClientShutdown;
UserServerDllInstance = LoadedServerDll->ServerHandle; - -/*** From win32csr... See r54125 ***/ - /* Start the Raw Input Thread and the Desktop Thread */ - for (i = 0; i < 2; ++i) - { - Status = RtlCreateUserThread(NtCurrentProcess(), - NULL, TRUE, 0, 0, 0, - CreateSystemThreads, - (PVOID)i, &ServerThread, &ClientId); - if (NT_SUCCESS(Status)) - { - NtResumeThread(ServerThread, NULL); - NtClose(ServerThread); - } - else - { - DPRINT1("Cannot start Raw Input Thread!\n"); - } - } -/*** END - From win32csr... ***/
/* Create the power request event */ Status = NtCreateEvent(&ghPowerRequestEvent, @@ -278,6 +249,32 @@ return Status; }
+/*** From win32csr... See r54125 ***/ + { + HANDLE ServerThread; + CLIENT_ID ClientId; + UINT i; + + /* Start the Raw Input Thread and the Desktop Thread */ + for (i = 0; i < 2; ++i) + { + Status = RtlCreateUserThread(NtCurrentProcess(), + NULL, TRUE, 0, 0, 0, + CreateSystemThreads, + (PVOID)i, &ServerThread, &ClientId); + if (NT_SUCCESS(Status)) + { + NtResumeThread(ServerThread, NULL); + NtClose(ServerThread); + } + else + { + DPRINT1("Cannot start Raw Input Thread!\n"); + } + } + } +/*** END - From win32csr... ***/ + /* All done */ return STATUS_SUCCESS; }