reactos/win32ss/user/consrv
Hermès Bélusca-Maïto dd5a9c5231 [CONSRV]
- 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
2013-01-02 00:32:20 +00:00
..
lang
res
alias.c
CMakeLists.txt
coninput.c
conio.h [CONSRV] 2013-01-02 00:32:20 +00:00
conoutput.c [CONSRV] 2013-01-02 00:32:20 +00:00
console.c [CONSRV] 2013-01-02 00:32:20 +00:00
consrv.h [CONSRV] 2013-01-02 00:32:20 +00:00
consrv.rc
consrv.spec
guiconsole.c
guiconsole.h
handle.c [CONSRV] 2013-01-02 00:32:20 +00:00
init.c [CONSRV] 2013-01-02 00:32:20 +00:00
lineinput.c
resource.h
rsrc.rc
tuiconsole.c
tuiconsole.h