2 * PROJECT: ReactOS Session Manager
3 * LICENSE: GPL v2 or later - See COPYING in the top level directory
4 * FILE: base/system/smss/init.c
5 * PURPOSE: Initialization.
6 * PROGRAMMERS: ReactOS Development Team
9 /* INCLUDES ******************************************************************/
16 /* FUNCTIONS ****************************************************************/
18 typedef NTSTATUS (* SM_INIT_ROUTINE
)(VOID
);
22 SM_INIT_ROUTINE EntryPoint
;
25 {TRUE
, SmCreateHeap
, "create private heap, aborting"},
26 // {TRUE, SmCreateObjectDirectories, "create object directories"},
27 // {TRUE, SmCreateApiPort, "create \\SmApiPort"},
28 // {TRUE, SmCreateEnvironment, "create the system environment"},
29 // {TRUE, SmSetEnvironmentVariables, "set system environment variables"},
30 // {TRUE, SmInitDosDevices, "create dos device links"},
31 // {TRUE, SmRunBootApplications, "run boot applications"},
32 // {TRUE, SmProcessFileRenameList, "process the file rename list"},
33 // {FALSE, SmUpdateEnvironment, "update environment variables"},
34 // {FALSE, SmLoadKnownDlls, "preload system DLLs"},
35 {TRUE
, SmCreatePagingFiles
, "create paging files"},
36 // {TRUE, SmInitializeRegistry, "initialize the registry"},
37 // {TRUE, SmInitializeClientManagement, "initialize client management"},
38 // {TRUE, SmLoadSubsystems, "load subsystems"}
42 InitSessionManager(VOID
)
45 NTSTATUS Status
= STATUS_SUCCESS
;
47 for (i
=0; i
< (sizeof InitRoutine
/ sizeof InitRoutine
[0]); i
++)
49 Status
= InitRoutine
[i
].EntryPoint();
50 if(!NT_SUCCESS(Status
))
52 DPRINT1("SM: %s: failed to %s (Status=%lx)\n",
54 InitRoutine
[i
].ErrorMessage
,
56 if (InitRoutine
[i
].Required
)
62 return(STATUS_SUCCESS
);