This is a list of todos for win32k. If you found something that needs to be done, but you can't or don't want to handle it right now, you can add an entry here, so it won't get forgotton. Please also note, where to find the problem (file / function), and possible requirements before it can be handled. Before the merge: ----------------- # Invalidate the whole Window content after mode switch # Fix hotizontal size of the taskbar after mode switch # Validate object type in GDIOBJ_LockMultipleObjs Generic: -------- # Get rid of all float and double in win32k. We can't use the fpu on x86 in the kernel, as fpu state is not saved in user/kernel transitions. There are 3 possible solutions: 1.) Rewrite the function to use integer (preferred) 2.) Use FLOATOBJ 3.) Use KeSaveFloatingPointState (slow, avoid!) # Seperate GDI debug to be usable in all modules. Current version is hardwired into gdiobjects.c # Rewrite the handle manager! Once and for all! Improve naming ("reference" vs "shared lock") Refactor the locking code to share a single inlined function Fix user mode object handling Fix locking order of different object types and same object types. Add debug code to verify locking order. Add checks for immutable objects vs locks # Review the global USER lock Currently we lock almost everything with a single lock. This should be reviewed for the possibility to split it into a number of smaller locks to increase scalability. Handle with care, the current solution is a good safety solution.