A bit of code reorganization:
- move a maximum of typedefs into their corresponding headers,
- move user heap functionality into a dedicated header,
- add a note in some functions that the first heap mapping entry in the W32 process info structure is dedicated for the global user heap mapping,
- remove extra-parenthesis in casts.
svn path=/trunk/; revision=65863
- In case of AssignSecurityDescriptor operation in IopGetSetSecurityObject(), put the security descriptor in cache before attempting the assignement
- In IopUnloadDevice(), don't attempt to free the security descriptor, let this to Ob by just derefencing it. Spotted & fixed by Thomas.
This unregresses VMware Tools installation.
CORE-7991
svn path=/trunk/; revision=65862
- Apply Wine commit f41ac94e (msi: Include the terminating null in the buffer size for decoded stream names.) by Hans Leidekker. Fixes a stack buffer overflow when installing VMware Tools.
svn path=/trunk/; revision=65859
- Implement IopGetDeviceAttachmentBase() which allows getting the base device of the device stack given any device object in it
- Implement IopGetDevicePDO() which returns the physical device object of the device stack given any device object in it
- Implement IopSetDeviceSecurityDescriptor() which will swap the old security descriptor of a device object with a new provided one
- Implement IopSetDeviceSecurityDescriptors() which will swap the old security descriptor with a new provided one in all the device objects from the lowest provided to the uppest provided one.
- Fix a fixme in IopGetSetSecurityObject(), the operation SetSecurityDescriptor is now fully implemented for both PDO & DO.
This is required by VMware driver vmci.sys.
Even though, the installation doesn't get any better; it just changes the BSOD, we now face a memory corruption (in SE).
CORE-7991
svn path=/trunk/; revision=65856
- Add another tiny text-editor Akelpad, which works "good enough" in ReactOS.
Suggested by [email protected], patch created by [email protected]
svn path=/trunk/; revision=65854
Also partly implement LsarpLookupPrivilegeDisplayName (currently, privilege description is the same as privilege name)
svn path=/trunk/; revision=65853
Partly implement the Provider class from WMI.
This allows VMware Tools installer to complain a bit less about imports not found.
The installation still fails and still ends with a BSOD though.
CORE-7991
svn path=/trunk/; revision=65849
- Re-enable the partition size check and display a warning if the install partition is too small.
- Update the required install partition size to 550MB.
svn path=/trunk/; revision=65847
- Add header for Ime information. Setup support for Ime types and hot keys.
- Finish keyboard processing changes and call Imm process key for callback to user mode.
svn path=/trunk/; revision=65845
- Add mod switch for SAS hotkey support.
- Add ImmProcessKey return flags, works the same as ImmProcessHotKey for WinCE.
svn path=/trunk/; revision=65843
- Move IME from stubs into its own file. Add flags and types to main header.
- Later, how to add Ime.h from mingw (tested it and works) and not effect VC++ ? VC SDK has Ime.h.
- Getting ready for Window Class update based on current wine tests.
svn path=/trunk/; revision=65842
Fix the following issues:
- Skip rotated font (font name starting with "@" char)
- Fix a comment (misspelled "Richedit")
- Fix enlarged preview font in font name is long (it truncated font name in 31 chars when copying)
- Fix 2 magic values (255 here is not meaningful, and it doesn't even entirely showing Unicode Plane 0)
Patch by Roy Tam.
CORE-8966 #resolve #comment Thanks. Commited in r65829.
svn path=/trunk/; revision=65829
Add French translation
It's totally broken though because the util directly writes Unicode to console. That should be fixed (see CORE-8965).
svn path=/trunk/; revision=65826
- CreateSystemThreads' parameter is unused, and the parameter of ONEPARAM_ROUTINE_CREATESYSTEMTHREADS win32k system call is set to TRUE when creating system threads in "remote processes", i.e. not CSRSS.
- Few code formatting fixes.
CORE-8949
svn path=/trunk/; revision=65825
* Do not make browseui an NT6 dll just because it has a missing include and it needs a few previously undocumented constants. We can just define them in an undoc header.
svn path=/trunk/; revision=65821
Fix NtUserProcessConnect to use the process handle we give to it, instead of the "current process"... This should fix the user32 CSR connection that I was failing to fix in previous revisions...
CORE-8949
svn path=/trunk/; revision=65820
Fix flags usage for LoadImage / CopyImage, that made network tray applet icons uglily being downscaled from 32px versions instead of their 16px counterparts.
svn path=/trunk/; revision=65819
Reintroduce CSR support for kernel mode, based on code from Ge that was wiped out in revision 58770, and by ntdll CSR code. Is needed for kernel to user-mode CSR callbacks.
For readers, I remind you the big callback picture in the Win32 subsystem:
- In Windows NT 3.1 and 3.51, USER and GDI was modeled against client/server model (USER32.DLL and WINSRV.DLL, and GDI32.DLL and GDISRV.DLL), all running in user mode (using the CSR API).
- Starting Windows NT 4.0 (and up), some USER and GDI parts were moved into kernel mode (in the WIN32K.SYS driver) to speedup communication. We get:
* GDI32.DLL as the client, doing win32k system calls (kernel-mode system calls to win32k),
* and USER32.DLL, WINSRV.DLL and WIN32K.SYS working in tandem, USER32.DLL being the client and {WINSRV.DLL, WIN32K.SYS} being the server.
USER32.DLL can do win32k system calls or CSR calls to WINSRV.DLL (client to server calls). For server-to-server calls, we have WINSRV.DLL
doing win32k system calls, or WIN32K.SYS doing CSR calls back to WINSRV.DLL . Also, there is the possibility for WIN32K.SYS to make user-mode
callbacks to USER32.DLL.
svn path=/trunk/; revision=65817
- Crash while in recursion through hook calls. Move fast calls to api. Placed safe guards for removing message queue structures. Lock threads while calling hooks. Just add paranoid code to prevent recursion freeing that will crash the kernel at some point. Fixes OpenMPT crashes, see CORE-8819. This might improve the same issues with CORE-6734.
svn path=/trunk/; revision=65815