Commit graph

7 commits

Author SHA1 Message Date
Alex Ionescu dfb761830d [SMSS2]: Implement executing the initial command as well as doing the SM-to-SM initial connection.
[SMSS2]: Implement the main LPC loop and handle all the supported APIs (all stubs for now). Also handle new connection requests and implement SmpHandleConnectionRequest.
[SMSS2]: Implement subsystem helper functions.
[SMSS2]: Use SmApiPort2 instead of Sm2ApiPort.
[SMSS2]: Rename the SMSRV_APIs not to conflict with the function names, nor with the client functions in smlib.

svn path=/trunk/; revision=55478
2012-02-07 07:13:42 +00:00
Alex Ionescu 524f08e959 [SMSS2]: Implement SmpTranslateSystemPartitionInformation which sets a few last registry keys as part of the initialization process.
[SMSS2]: Implement SmpLoadSubsystemsForMuSession which correctly creates a session, loads win32k.sys inside of it, and then detaches from the session. Winlogon.exe is set as the initial command (but not launched), and CSRSS is fake-started.
[CSRSRV]: No longer start win32k.sys, that's not your job.
[SMSS2]: Kill most debug prints that aren't errors.

svn path=/trunk/; revision=55467
2012-02-06 18:57:18 +00:00
Alex Ionescu 5ebd3e62cf [SMSS2]: Implement helper functions for reading and writing to the BSD (What lets Windows know if this was a good boot/shutdown or a bad one, and to display the recovery settings or not (FreeLDR should do this...)). Implement the functions needed to launch native applications, and add support for launching autochk and any other bootexecute applications. Set the correct SessionID with the kernel by calling ProcessSessionInformation. Pending File Rename Operations are the last big thing left, plus actual pagefile creation.
[SMSS2]: Fix a bug in SmpParseCommandLine.

svn path=/trunk/; revision=55346
2012-01-31 02:38:42 +00:00
Alex Ionescu b42b421bea [SMSS]: Co-exist with SMSS2 by using OBJ_OPENIF when creating object directories and sections, in case SMSS2 has already done so (which now it probably will).
[SMSS2]: Implement all the required registry configuration parsing functions. KnownDLLs, DosDevices, PageFiles, Subsystems, ExcludedKnownDLLs, PendingFileRenameOperations, ObjectDirectories, Environment keys are all processed and put into lists. Other than creating the object directories and setting the environment variables, though, no other work happens -- but we do DPRINT1 what should happen.

svn path=/trunk/; revision=55319
2012-01-30 08:02:17 +00:00
Alex Ionescu ddeb8354e4 [SMSS2]: Initialize a bunch more internal stuff, and start parsing the registry for settings. Right now just ProtectionMode and AllowProtectedRenames are parsed. Stub functions needed for the rest of initialization. Create the \Sessions directory. Hack to work under setup. Loop BootExecute and PageFile entries. Create SMSS environment. Detect MiniNT mode (PE/LiveCD). Delete SAFEBOOT_OPTION if found.
svn path=/trunk/; revision=55317
2012-01-30 05:32:34 +00:00
Alex Ionescu bbaf1702fe [SMSS2]: Create the VolumesSafeForWriteAccess and Sm2ApiPort. Create all the required security descriptors. Create the two API threads. Initialize a bunch of other stuff needed for later. Initialize tag heap and enable hard errors. Api loop waits on the LPC port but nothing should be going through there for now.
svn path=/trunk/; revision=55314
2012-01-30 03:44:27 +00:00
Alex Ionescu 88cd0f3813 [SMSS2]: Flesh out the _main function in the new SMSS, including the SEH filter and SmpTerminate support. Instead of launching Winlogon (The "initial command", we launch the ReactOS SMSS for now -- and kill the system if it is ever terminated, as we should). We use the right priority, set the right critical flags, use the correct debug parameters, and acquire/release the correct privileges. Only thing not supported is launching ntsd if the "Debug Initial Command" global flag is set. I promise to implement that once someone implements ntsd ;-)
svn path=/trunk/; revision=55311
2012-01-30 02:10:39 +00:00