Hermès Bélusca-Maïto 02a51a5dce In absence of patchbot, let's test patch directly on... trunk!! Yeah!! Let's break trunk! (or not, we'll see...)
[USER32][USERSRV][WIN32K]
- Flag CSRSS threads as such.
- Each time a win32 thread is "created" (or a win32k system call is done) a PsConvertToGuiThread call is done, that makes a Win32ThreadCallout which calls UserCreateThreadInfo. We should call back ClientThreadSetup to set client-side info.
- Introduce a ClientThreadSetupHelper function to try to understand what happens when doing direct calls to ClientThreadSetup and via win32k callbacks.
- Reenable CSR call in user32::DllMain but add shame hacks in Init(..) to force NtUserProcessConnect callbacks (yet they should not be done there): see the code comment associated for more details.
- Temporarily disable ClientThreadSetupHelper call in ClientThreadSetup because it makes things fail, like console input thread failing and so on...
- ... and in ClientThreadSetupHelper, some correct code is commented out because it currently breaks other things (like menu initialization etc...), and HACKS ARE ADDED!! (see especially the "if (gpsi)" one, that should not exist, but if removed we fail sometimes in MenuInit because gpsi becomes NULL for some reason, if some other code that makes redundant calls to NtUserProcessConnect, is uncommented).

To sum up I tried to scaffold the thing as it should be, but with disabled code to not break everything.

CORE-8949 #comment Revision 65799 committed the patch v1.

svn path=/trunk/; revision=65799
2014-12-22 21:23:00 +00:00
2014-09-24 22:18:51 +00:00
2012-02-05 13:43:04 +00:00
S
Description
A free Windows-compatible Operating System
528 MiB
Languages
C 86.9%
C++ 10.7%
Python 0.7%
Assembly 0.5%
CMake 0.5%
Other 0.4%