xref: /reactos/base/system/lsass/lsass.c (revision ac43fd2b)
1 /*
2  * reactos/subsys/system/lsass/lsass.c
3  *
4  * ReactOS Operating System
5  *
6  * --------------------------------------------------------------------
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  *
22  * --------------------------------------------------------------------
23  *
24  * 	19990704 (Emanuele Aliberti)
25  * 		Compiled successfully with egcs 1.1.2
26  */
27 #define WIN32_NO_STATUS
28 #define NTOS_MODE_USER
29 
30 #include <ndk/psfuncs.h>
31 #include <ndk/rtlfuncs.h>
32 
33 #include <lsass/lsasrv.h>
34 #include <samsrv/samsrv.h>
35 
36 #define NDEBUG
37 #include <debug.h>
38 
39 INT WINAPI
40 wWinMain(IN HINSTANCE hInstance,
41          IN HINSTANCE hPrevInstance,
42          IN LPWSTR lpCmdLine,
43          IN INT nShowCmd)
44 {
45     NTSTATUS Status = STATUS_SUCCESS;
46 
47     DPRINT("Local Security Authority Subsystem\n");
48     DPRINT("  Initializing...\n");
49 
50     /* Make us critical */
51     RtlSetProcessIsCritical(TRUE, NULL, TRUE);
52 
53     /* Initialize the LSA server DLL */
54     Status = LsapInitLsa();
55     if (!NT_SUCCESS(Status))
56     {
57         DPRINT1("LsapInitLsa() failed (Status 0x%08lX)\n", Status);
58         goto ByeBye;
59     }
60 
61     /* Initialize the SAM server DLL */
62     Status = SamIInitialize();
63     if (!NT_SUCCESS(Status))
64     {
65         DPRINT1("SamIInitialize() failed (Status 0x%08lX)\n", Status);
66         goto ByeBye;
67     }
68 
69     /* Start the security services */
70     Status = ServiceInit();
71     if (!NT_SUCCESS(Status))
72     {
73         DPRINT1("ServiceInit() failed (Status 0x%08lX)\n", Status);
74         goto ByeBye;
75     }
76 
77     /* FIXME: More initialization */
78 
79     DPRINT("  Done...\n");
80 
81 ByeBye:
82     NtTerminateThread(NtCurrentThread(), Status);
83 
84     return 0;
85 }
86 
87 /* EOF */
88