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
* Fix wrong array length passed to GetClassNameW. CID 716222
* Replace other instances of explicit array length to GetWindowTextW with _countof(x).
Based on a patch by Christoph von Wittich.
svn path=/branches/shell-experiments/; revision=64866
* Cleanup in case of error. CID 1248426
[RSHELL]
* Add uninitialized class fields. CID 1248477
* Avoid leaking memory. CID 1248438
[BROWSEUI]
* Fix potential overwriting of a variable. CID 716363
* Save the rshell handle instead of loading it every time. CID 1248435
* Fix leaked PIDL. CID 1248418
[SHELL32]
* Fix GCC build. And one small nickpick that has been bothering me for a long time.
svn path=/branches/shell-experiments/; revision=64864
- reference the current process info structure while we're leaving win32k.
The process can die anytime while we're not looking.
CORE-8663 #resolve
svn path=/trunk/; revision=64863
- Remove code that breaks wine release 1.7.29 user32 input tests. Code was there since r2505.
- So due to this commit, over compensating hacks can break.
svn path=/trunk/; revision=64860