3 * init.c - ReactOS/Win32 Console+User Enviroment Subsystem Server - Initialization
5 * ReactOS Operating System
7 * --------------------------------------------------------------------
9 * This software is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
14 * This software is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this software; see the file COPYING.LIB. If not, write
21 * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
24 * --------------------------------------------------------------------
31 HANDLE WinSrvApiPort
= NULL
;
33 /**********************************************************************
35 * ConStaticServerThread/1
37 VOID WINAPI
ConStaticServerThread (PVOID x
)
39 NTSTATUS Status
= STATUS_SUCCESS
;
40 PPORT_MESSAGE Request
= (PPORT_MESSAGE
) x
;
41 PPORT_MESSAGE Reply
= NULL
;
42 ULONG MessageType
= 0;
44 DPRINT("WINSRV: %s(%08lx) called\n", __FUNCTION__
, x
);
46 MessageType
= Request
->u2
.s2
.Type
;
47 DPRINT("WINSRV: %s(%08lx) received a message (Type=%d)\n",
48 __FUNCTION__
, x
, MessageType
);
53 Status
= NtReplyPort (WinSrvApiPort
, Reply
);
58 /**********************************************************************
60 * UserStaticServerThread/1
62 VOID WINAPI
UserStaticServerThread (PVOID x
)
64 NTSTATUS Status
= STATUS_SUCCESS
;
65 PPORT_MESSAGE Request
= (PPORT_MESSAGE
) x
;
66 PPORT_MESSAGE Reply
= NULL
;
67 ULONG MessageType
= 0;
69 DPRINT("WINSRV: %s(%08lx) called\n", __FUNCTION__
, x
);
71 MessageType
= Request
->u2
.s2
.Type
;
72 DPRINT("WINSRV: %s(%08lx) received a message (Type=%d)\n",
73 __FUNCTION__
, x
, MessageType
);
78 Status
= NtReplyPort (WinSrvApiPort
, Reply
);
83 /*=====================================================================
85 *===================================================================*/
87 NTSTATUS WINAPI
ConServerDllInitialization (ULONG ArgumentCount
,
90 NTSTATUS Status
= STATUS_SUCCESS
;
92 DPRINT("WINSRV: %s called\n", __FUNCTION__
);
94 // Get the listening port from csrsrv.dll
95 WinSrvApiPort
= CsrQueryApiPort ();
96 if (NULL
== WinSrvApiPort
)
98 return STATUS_UNSUCCESSFUL
;
100 // Register our message dispatcher
101 Status
= CsrAddStaticServerThread (ConStaticServerThread
);
102 if (NT_SUCCESS(Status
))
104 //TODO: perform the real console server internal initialization here
109 NTSTATUS WINAPI
UserServerDllInitialization (ULONG ArgumentCount
,
112 NTSTATUS Status
= STATUS_SUCCESS
;
114 DPRINT("WINSRV: %s called\n", __FUNCTION__
);
116 // Get the listening port from csrsrv.dll
117 WinSrvApiPort
= CsrQueryApiPort ();
118 if (NULL
== WinSrvApiPort
)
120 return STATUS_UNSUCCESSFUL
;
122 // Register our message dispatcher
123 Status
= CsrAddStaticServerThread (UserStaticServerThread
);
124 if (NT_SUCCESS(Status
))
126 //TODO: perform the real user server internal initialization here