Fix the debugging macros introduced in r58132 (for the _FATAL case):
do not use exceptions but instead a breakpoint followed by a process termination procedure (or a bugcheck if we are in kernel mode).
Feel free to improve them !!
[DRIVERS-HAL]
Finish to use the new debugging macros
Part 3/3
svn path=/trunk/; revision=58154
Rewrite DisplayCharacter. The new algorithm is much faster. It uses the VGA mask register to draws up to 8 pixels at once, completely getting rid of the inner loop. Pixel position / mask calculations and the check for opaque vs transparent background are moved out of the loops. The result is a single loop for the y coordinate containing an inlined __outbyte and memory write. A second loop in case of unaligned character writes.
svn path=/trunk/; revision=58148
Apply the following optimizations:
- include ioaccess.h to inline port access, instead of going through hal.
- Make __outpb and __outpw macros rather than stdcall function
- Make SetPixel FORCEINLINE
- Do not switch mode for every pixel we write, instead do it once before doing larger blt operations
- use __movsb instead of manual loop plus READ/WRITE_REGISTER_UCHAR
This noticeably improves performance.
svn path=/trunk/; revision=58147
Add the source login logo .svg file. To make the bitmap, export the .svg file in png, then save the png in Bitmap 24bits.
svn path=/trunk/; revision=58145
Note to people:
~=~=~=~=~=~=~=~
- The msgina (login) logo is made from a .svg file. The copyright line text has font Lucida Sans Unicode (this font allows you to have the right length to the year-dash-separator). DejaVu Sans may also work. I would prefer to use the other logo used as the header for the ReactOS Welcome program (welcome.exe from the CD), but also it is given as a .bmp and I would like to have a .svg or some equivalent format to use it (with little modifications though) as a new login logo (in particular, rescaling it).
- Adjust the boot-logo year, also with the Lucida Sans Unicode font. This was done with Paint from Win2k3 (WARNING!! Not with Windows 7 Paint !!) because it keeps the palette of the opened bitmap, contrary to Windows7 one.
- If somebody has the original boot-logo file (a .svg, ..., something else?), then signal it to me !
svn path=/trunk/; revision=58144
- Use __debugbreak in _assert when user presses ignore in the message box
- Implement __crt_MessageBoxA and use it from _assert and abort
- Rewrite abort and _set_abort_behavior
- Add function headers and set BSD license for my code
- CORE-6594 #resolve
svn path=/trunk/; revision=58143
* For anyone who wants to work only on a certain module (or a set of modules), you can add "project(module)" to the related CMake file. This will generate a solution that contains all the required dependencies needed to compile only that module, without having to open a huge solution with 900+ projects.
* We'll create a wiki page to explain how to use this in detail.
* Dedicated to all VS users. Have fun ;)
svn path=/trunk/; revision=58141
- Fix the debugging macros I've introduced in r58132; in particular do not use while(true); for forbidding the user to continue execution, but instead raise an exception with EXCEPTION_NONCONTINUABLE flag (included when called RtlRaiseStatus).
- Adjust the definition of RtlRaiseStatus (in kernel-mode it is ExRaiseStatus which is used).
svn path=/trunk/; revision=58135
- romanian translation update by Stefan Fulea; CORE-6718
- fix for japaneese cmd translation by Tomoya Kitagawa; CORE-6820
- polish translation update of desk and input;
svn path=/trunk/; revision=58134
Introduce four new debugging macros, ERROR_DBGBREAK, ERROR_FATAL, UNIMPLEMENTED_DBGBREAK, UNIMPLEMENTED_FATAL (and two helpers, __NOTICE and __ERROR_DBGBREAK).
They are designed to display on the debug-log a printf-like user-defined message and to break into the debugger.
- The *_DBGBREAK macros break only into the debugger and allow to continue (they don't hang).
- The *_FATAL macros break into the debugger and then halt the execution.
(Based on an idea of Aleksey Bragin, see the ros-dev mailing list about the while(true) --> assert(false); changes).
[NTOSKRNL]
Use these macros instead of ASSERT(FALSE); introduced in revisions r58110, r58111 and r58112 to replace while(TRUE); halts.
Part 1/3
svn path=/trunk/; revision=58132
- NetUserGetInfo: Add Support for info level 23.
- Convert UserAccountControl flags to user info flags and convert last logon, last logoff and account expires time.
svn path=/trunk/; revision=58130
- Correctly show current time zone name even if no daylight saving settings are set. Patch by Lee Schroeder.
CORE-6803 #resolve #comment Fixed, thanks. Sorry for the long wait.
svn path=/trunk/; revision=58126
- Move "Show window previews (thumbnails)" option to advanced tab, as it doesn't exist in Windows. Patch by Edijs Kolesnikovičs.
CORE-6840 #resolve
svn path=/trunk/; revision=58124
- Plug a memory leak in IDropTargetImpl
- Do not allocate 64x the required space in TaskSwitchWnd_AllocTaskItem
- Properly free and unregister the tray window
- Fix a few more style issues
svn path=/trunk/; revision=58123
Check for NULL parameter in the function CsrLocateThreadByClientId. Triggered when it was called by CsrApiHandleConnectionRequest during tests (the call to CsrLocateThreadByClientId happens in line 146 of api.c).
svn path=/branches/ros-csrss/; revision=58121
Rename some structures (CSRSS_... ---> CONSOLE_...) and clarify what the ConsoleHandle members are for (--> OutputHandle or InputHandle).
No code changes otherwise.
svn path=/branches/ros-csrss/; revision=58119
Implement SamrQueryInformationUser.UserParametersInformation and set the Parameters attribute when a new user is created.
svn path=/trunk/; revision=58117
In NtGdiStretchDIBitsInternal check early for info dc / mem dc without surface, only allocate memory and copy bits if the caller actually passed bits (they are optional), free the allocation, when an exception happens instead of leaking the memory.
svn path=/trunk/; revision=58116
and in some cases, return an adequate value. In some places however, I add an ASSERT(FALSE); before keeping the while (TRUE); in critical regions.
(Only x86, as well as in r58110). More ASSERTS (in debug mode) or BSODs may appear, instead of having hung threads.
Part 1-bis/2
svn path=/trunk/; revision=58111
Implement DC_hSelectFont, use it from NtGdiSelectFont and GdiFlushUserBatch. Make sure plfnt is != NULL before dereferencing it in "TEXTOBJ_LockText"
svn path=/trunk/; revision=58109
- Start to implement NtUserConsoleControl to allow the console server define Console Window Class atom.
- In UserInitialize, initialize the current thread by a call to UserCreateThreadInfo.
- In UserCreateThreadInfo, set the TIF_CSRSSTHREAD flag for threads created by CSRSS.
- In NtUserQueryWindow, when querying the process/thread ID associated to a given window, check whether the window was created by CSRSS and if so, if this is a Console window, get the process/thread ID of the associated console process (console leader process), instead of the CID of CSRSS.
[CONSRV]
- Introduce the concept of console leader process (to be used as the process owning the console window).
- Introduce extra console window information to store the PID and TID of the console leader process via new internal flags to be used by GetWindowLong.
- Effectively set the console window console leader CID at its creation.
- Improve CsrInitConsole to set a console leader process to the console being created.
This fixes http://jira.reactos.org/browse/CORE-122 in this branch.
[CONSRV-WIN32K]
Fix various code misspellings.
svn path=/branches/ros-csrss/; revision=58107