- Remove the cursor from the process cache when its handle is deleted, not after.
- Do not return an invalid handle in NtUserSetCursor.
CORE-7575
svn path=/trunk/; revision=64912
- Fix LookupIconIdFromDirectoryEx, returning 0 when no matching entry is found.
- Fix error handling when opening a cursor file.
- Various code beautification here and there
CORE-7575
svn path=/trunk/; revision=64911
Fix ARM build, patch by Yuntian Zhang with minor adjustment by me.
CORE-8666 #resolve #comment Committed in r64910, thanks!
svn path=/trunk/; revision=64910
Do not raise an exception in _invalid_parameter, which is only done in later MSVCRTs. Wine uses a symbolic constant (_MSVCR_VER) to handle this and other things and compiles their CRT code multiple times. As an alternative we could use a global version variable to avoid recompiling, once we implement other CRT dlls.
CORE-8670 #resolve
svn path=/trunk/; revision=64909
- check the right buffer's length
[WIN32K]
- simplify IntKeyboardUpdateLeds a bit and mind previous mode
- fixes keyboard indicators
CORE-8547
svn path=/trunk/; revision=64908
Make special pool usable:
- Invalidate PTEs on free to catch use-after-free situations (and not confuse Mm)
- Fix pattern check not to look for more than 8 bits in a byte
- Enable POOL_FLAG_SPECIAL_POOL if special pool has been initialized
- Implement MmExpandSpecialPool
- Issue the correct SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION bugcheck when problems are detected
- Magic values--
To enable special pool for a single tag, set a value for MmSpecialPoolTag in ntoskrnl/mm/ARM3/pool.c.
To enable it for more than one tag, set MmSpecialPoolTag and modify MmUseSpecialPool in ntoskrnl/mm/ARM3/special.c (e.g. to return TRUE independent of Tag).
CORE-8680 #resolve
svn path=/trunk/; revision=64886
- Generate PAGE_FAULT_IN_NONPAGED_AREA bugcheck for PTEs that have their protection set to zero. This gives a more useful error description than the infamous 'TempPte.u.Long != 0' assertion*.
CORE-8679 #resolve
* and is also What Windows Does(TM)
svn path=/trunk/; revision=64885
- Fix a few usages of UserSetCursor
- Defer the actual freeing of cursor resources to when the object is freed for real.
CORE-7575
svn path=/trunk/; revision=64879
- "Convert" new cursor & icons implementation to the new user object handle manager.
- Fix a few idiosyncracies in the way cursor handles are used (only with USE_NEW_CURSORICON_ENABLED)
[WIN32SS]
- Storm out the flowers out of how classes use icon and cursor objects, with proper refcounting and all those joyous things.
Handles are for the powerless, kernel mode use pointers.
Only with USE_NEW_CURSORICON enabled (soon!)
CORE-7575
svn path=/trunk/; revision=64877