[FLTMC]
[reactos.git] / reactos / base / system / lsass / lsass.c
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 /* Start the Netlogon service. */
62 Status = ServiceInit();
63 if (!NT_SUCCESS(Status))
64 {
65 DPRINT1("ServiceInit() failed (Status 0x%08lX)\n", Status);
66 goto ByeBye;
67 }
68
69 /* Initialize the SAM server DLL. */
70 Status = SamIInitialize();
71 if (!NT_SUCCESS(Status))
72 {
73 DPRINT1("SamIInitialize() 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 */