reactos/reactos
Alex Ionescu 682a93c9f9 [CSRSRV]: Sometimes too much of a hybrid is no longer a good thing. Rewrite the CSRSRV API loop to match (almost -- except the actual API conversion which is different in ReactOS) the CSRSRV2 loop, with the correct handling of datagrams, errors, exceptions, death messages, etc...
[CSRSRV]: Add special handling for certain messages (similar to how "Reply" is used in CSRSRV2) so that we don't keep replying to the wrong thead. For example, during an ExitProcess, special handling is needed at the end of the loop.
[CSRSRV]: Remove the last few remaining legacy process management function and use the correct CsrLock/Unlock APIs instead. No longer leak references for every process like crazy. Fully manage proc/thread/session reference counts now.
At this point it looks like there might just be one issue left before this thing works right (minus potential regressions due to missed hacks).

svn path=/trunk/; revision=55718
2012-02-19 19:40:28 +00:00
..
base Missed these guys. 2012-02-19 02:25:31 +00:00
boot [FREELDR] 2012-02-17 17:22:14 +00:00
cmake [CMAKE] 2012-02-17 15:54:05 +00:00
dll [KERNEL32/CSRSRV]: Handle ExitProcess CSRSS message and implement CsrDestroyProcess to do so. Also implement CsrDestroyThread for future purposes. 2012-02-19 18:46:05 +00:00
drivers [USBCCGP] 2012-02-19 15:43:18 +00:00
hal [NTOSKRNL]: Implement ThreadBreakOnTermination for the SET case. 2012-02-19 02:24:52 +00:00
importlibs
include [KERNEL32/CSRSRV]: Handle ExitProcess CSRSS message and implement CsrDestroyProcess to do so. Also implement CsrDestroyThread for future purposes. 2012-02-19 18:46:05 +00:00
lib [RTL/NTDLL/KERNEL32]: Rtl provides worker queue and timer queue functionality, which queues a worker thread associated with a caller-supplied callback. In Windows, Rtl by default calls RtlCreateUserThread, but as soon as kernel32 loads, it's DllMain calls an exported function RtlSetThreadPoolStartFunc which changes that default to a special Base function that calls CreateRemoteThread instead. The net result is that Win32 processes using the Rtl functionality get their threads properly registered with CSRSS. In ReactOS, this did not happen, so when those threads called into CSRSS, CSRSS had no CSR_THREAD structure/state for them, which is why CsrCreateThread (and the API loop) are so badly hacked. This commit implements RtlSetThreadPoolStartFunc, implements the kernel32 base functions which wrap CreateRemoteThread, and implements the rtl functions which wrap RtlCreateUserThread. Services, Setup, and any ReactOS application using RPC now have the worker threads correctly registered. 2012-02-19 10:06:31 +00:00
media [USBSTOR] 2012-02-17 03:44:56 +00:00
modules
ntoskrnl [NTOSKRNL] 2012-02-19 10:38:38 +00:00
subsystems [CSRSRV]: Sometimes too much of a hybrid is no longer a good thing. Rewrite the CSRSRV API loop to match (almost -- except the actual API conversion which is different in ReactOS) the CSRSRV2 loop, with the correct handling of datagrams, errors, exceptions, death messages, etc... 2012-02-19 19:40:28 +00:00
tools * Get rid of $Id$ usage and the related svn property. 2012-02-18 22:57:24 +00:00
.hgeol
apistatus.lst
baseaddress.rbuild
CMakeLists.txt
config-amd64.template.rbuild
config-arm.template.rbuild
config-ppc.template.rbuild
config.template.rbuild
configure.cmd
configure.sh
COPYING
COPYING.ARM
COPYING.LIB
COPYING3
COPYING3.LIB
CREDITS
depmap.xsl
Doxyfile
global.lds
INSTALL
Makefile
PreLoad.cmake
proxy.mak
ReactOS-amd64.rbuild
ReactOS-arm.rbuild
ReactOS-generic.rbuild
ReactOS-i386.rbuild
ReactOS-ppc.rbuild
README
rosbuild.bat
toolchain-gcc.cmake
toolchain-msvc.cmake
vreport.xsl

========================
ReactOS Version 0.3.x
Updated Dec 16, 2006
========================

1. What is ReactOS?

   ReactOS is an Open Source effort to develop a quality operating system
that is compatible with Windows NT applications and drivers.

   The ReactOS project, although currently focused on Windows XP/2003
drivers compatibility, is always keeping an eye toward compatibility with
older version of Windows NT family ( NT 4.0, 2000 (NT 5.0)) and new
Windows NT releases (Vista, etc). Applications (Win32 API) compatibility
focus is Windows XP.

More information is available at http://www.reactos.org/.

2. Building ReactOS

See the INSTALL file for more details.

3. More information

See the media\doc subdirectory for some sparse notes.

4. Who is responsible

See the CREDITS file.