mirror of
https://github.com/reactos/reactos.git
synced 2024-10-15 13:45:58 +00:00
dd5a9c5231
- Fix console apps initialization. - Add some debug output (NOTE TO MYSELF: remove them when all things work). - Rewrite ConsoleNewProcess. - Reorganize SrvAllocConsole and create ConsoleConnect based on SrvAllocConsole. - Create ConsoleDisconnect which undoes what ConsoleConnect and ConsoleNewProcess did. - Rework a little bit CsrInitConsole. Now the console app. initialization algorithm is the following: 1- A process is created, its type (GUI or CUI) is determined (kernel32 and basesrv). 2- ConsoleNewProcess is called (consrv) and makes this new process inherit the console handles table from its parent (NOTE: this is done for all CUI processes, because at this point, we still don't know whether we must inherit the handles from the parent or not). 3- (back in kernel32) In BasepInitConsole, we determine whether or not we must create a new console window or use the parent's one or not using one at all. We (as a client) connect to the console server (consrv) (via CsrClientConnectToServer) which in turn (via CSRSS mechanism) calls ConsoleConnect. For GUI processes we do nothing. For CUI processes, we initialize a new console based on properties set in BasepInitConsole. 4- When a process dies, ConsoleDisconnect is called and whether it is a GUI or CUI process, we revert the actions done previously. Part 2/2 TODO: - Debug the CSR waits. - Work on the console properties property-sheet. - See what can be done on http://jira.reactos.org/browse/CORE-122 svn path=/branches/ros-csrss/; revision=58098 |
||
---|---|---|
.. | ||
lang | ||
res | ||
alias.c | ||
CMakeLists.txt | ||
coninput.c | ||
conio.h | ||
conoutput.c | ||
console.c | ||
consrv.h | ||
consrv.rc | ||
consrv.spec | ||
guiconsole.c | ||
guiconsole.h | ||
handle.c | ||
init.c | ||
lineinput.c | ||
resource.h | ||
rsrc.rc | ||
tuiconsole.c | ||
tuiconsole.h |