SM some simple work (wip)
Modified: trunk/reactos/subsys/smss/client.c
Modified: trunk/reactos/subsys/smss/init.c
Modified: trunk/reactos/subsys/smss/initobdir.c
Modified: trunk/reactos/subsys/smss/smss.c
Modified: trunk/reactos/subsys/smss/smss.h
_____
Modified: trunk/reactos/subsys/smss/client.c
--- trunk/reactos/subsys/smss/client.c 2005-02-26 23:21:58 UTC (rev
13761)
+++ trunk/reactos/subsys/smss/client.c 2005-02-26 23:22:48 UTC (rev
13762)
@@ -169,6 +169,8 @@
* Initialize the client data
*/
pClient->SubsystemId = ConnectData->Subsystem;
+ /* SM auto-initializes; other subsystems are required to call
+ * SM_API_COMPLETE_SESSION via SMDLL. */
pClient->Initialized = (IMAGE_SUBSYSTEM_NATIVE ==
pClient->SubsystemId);
if (SbApiPortNameSize > 0)
{
_____
Modified: trunk/reactos/subsys/smss/init.c
--- trunk/reactos/subsys/smss/init.c 2005-02-26 23:21:58 UTC (rev
13761)
+++ trunk/reactos/subsys/smss/init.c 2005-02-26 23:22:48 UTC (rev
13762)
@@ -36,14 +36,14 @@
static NTSTATUS
SmpSignalInitEvent(VOID)
{
- NTSTATUS Status;
- OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING UnicodeString;
- HANDLE ReactOSInitEvent;
+ NTSTATUS Status = STATUS_SUCCESS;
+ OBJECT_ATTRIBUTES ObjectAttributes = {0};
+ UNICODE_STRING EventName ={0};
+ HANDLE ReactOSInitEvent = NULL;
- RtlRosInitUnicodeStringFromLiteral(&UnicodeString,
L"\\ReactOSInitDone");
+ RtlInitUnicodeString (& EventName, L"\\ReactOSInitDone");
InitializeObjectAttributes(&ObjectAttributes,
- &UnicodeString,
+ & EventName,
EVENT_ALL_ACCESS,
0,
NULL);
_____
Modified: trunk/reactos/subsys/smss/initobdir.c
--- trunk/reactos/subsys/smss/initobdir.c 2005-02-26 23:21:58 UTC
(rev 13761)
+++ trunk/reactos/subsys/smss/initobdir.c 2005-02-26 23:22:48 UTC
(rev 13762)
@@ -23,8 +23,6 @@
*
* --------------------------------------------------------------------
*/
-
-
#include "smss.h"
#define NDEBUG
@@ -82,7 +80,7 @@
QueryTable[0].QueryRoutine = SmpObjectDirectoryQueryRoutine;
Status = RtlQueryRegistryValues(RTL_REGISTRY_CONTROL,
- L"\\Session Manager",
+ SM_REGISTRY_ROOT_NAME,
QueryTable,
NULL,
NULL);
_____
Modified: trunk/reactos/subsys/smss/smss.c
--- trunk/reactos/subsys/smss/smss.c 2005-02-26 23:21:58 UTC (rev
13761)
+++ trunk/reactos/subsys/smss/smss.c 2005-02-26 23:22:48 UTC (rev
13762)
@@ -30,18 +30,32 @@
#define NDEBUG
#include <debug.h>
+HANDLE SmSsProcessId = 0;
+
/* Native image's entry point */
VOID STDCALL
NtProcessStartup(PPEB Peb)
{
NTSTATUS Status;
-
+ PROCESS_BASIC_INFORMATION PBI = {0};
+
DisplayString(L"SMSS\n");
PrintString("ReactOS Session Manager %s (Build %s)\n",
KERNEL_RELEASE_STR,
KERNEL_VERSION_BUILD_STR);
+ /* Lookup yourself */
+ Status = NtQueryInformationProcess (NtCurrentProcess(),
+ ProcessBasicInformation,
+ & PBI,
+ sizeof PBI,
+ NULL);
+ if(NT_SUCCESS(Status))
+ {
+ SmSsProcessId = PBI.UniqueProcessId;
+ }
+ /* Initialize the system */
Status = InitSessionManager();
if (!NT_SUCCESS(Status))
{
@@ -64,7 +78,7 @@
NULL); /* NULL for infinite */
if (!NT_SUCCESS(Status))
{
- DPRINT1("SM: NtWaitForMultipleObjects failed!\n");
+ DPRINT1("SM: NtWaitForMultipleObjects failed!
(Status=0x%08lx)\n", Status);
}
else
{
_____
Modified: trunk/reactos/subsys/smss/smss.h
--- trunk/reactos/subsys/smss/smss.h 2005-02-26 23:21:58 UTC (rev
13761)
+++ trunk/reactos/subsys/smss/smss.h 2005-02-26 23:22:48 UTC (rev
13762)
@@ -9,6 +9,9 @@
#define CHILD_CSRSS 0
#define CHILD_WINLOGON 1
+/* smss.c */
+extern HANDLE SmSsProcessId;
+
/* init.c */
NTSTATUS InitSessionManager(VOID);
Show replies by date