mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
Multiuser Win32: empty server dll
svn path=/trunk/; revision=13751
This commit is contained in:
parent
825a47e3ad
commit
22e4fff2f1
6 changed files with 159 additions and 0 deletions
28
reactos/subsys/csrss/win32mu/Makefile
Normal file
28
reactos/subsys/csrss/win32mu/Makefile
Normal file
|
@ -0,0 +1,28 @@
|
|||
# $Id: $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_TYPE = dynlink
|
||||
|
||||
TARGET_NAME = win32mu
|
||||
|
||||
TARGET_BASE = 0x5ffb0000
|
||||
|
||||
# require os code to explicitly request A/W version of structs/functions
|
||||
TARGET_CFLAGS += -D__USE_W32API -D_DISABLE_TIDENTS -Wall -Werror -I../include
|
||||
|
||||
TARGET_LFLAGS = -nostartfiles -nostdlib
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a user32.a gdi32.a
|
||||
|
||||
TARGET_OBJECTS = dllmain.o init.o
|
||||
|
||||
TARGET_ENTRY = _DllMain@12
|
||||
|
||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
include $(TOOLS_PATH)/depend.mk
|
37
reactos/subsys/csrss/win32mu/dllmain.c
Normal file
37
reactos/subsys/csrss/win32mu/dllmain.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* $Id: $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
* FILE: subsys/csrss/win32csr/dllmain.c
|
||||
* PURPOSE: Initialization
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <windows.h>
|
||||
#include "csrplugin.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
HINSTANCE DllHandle = (HINSTANCE) 0;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
BOOL STDCALL
|
||||
DllMain(HANDLE hDll,
|
||||
DWORD dwReason,
|
||||
LPVOID lpReserved)
|
||||
{
|
||||
if (DLL_PROCESS_ATTACH == dwReason)
|
||||
{
|
||||
DllHandle = hDll;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* EOF */
|
85
reactos/subsys/csrss/win32mu/init.c
Normal file
85
reactos/subsys/csrss/win32mu/init.c
Normal file
|
@ -0,0 +1,85 @@
|
|||
/* $Id: $
|
||||
*
|
||||
* WIN32MU.DLL - init.c - Initialize the server DLL
|
||||
*
|
||||
* ReactOS Operating System
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*
|
||||
* This software is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING.LIB. If not, write
|
||||
* to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
|
||||
* MA 02139, USA.
|
||||
*
|
||||
* --------------------------------------------------------------------
|
||||
*/
|
||||
#define NTOS_MODE_USER
|
||||
#include <ntos.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
#include "w32mu.h"
|
||||
|
||||
static NTSTATUS STDCALL
|
||||
W32muLoadRemoteTerminalProxy (VOID)
|
||||
{
|
||||
SYSTEM_LOAD_AND_CALL_IMAGE ImageInfo;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
DPRINT("W32MU: loading remote terminal device\n");
|
||||
|
||||
/* Load kernel mode module */
|
||||
RtlInitUnicodeString (& ImageInfo.ModuleName,
|
||||
L"\\SystemRoot\\system32\\w32mut.sys");
|
||||
|
||||
Status = NtSetSystemInformation (SystemLoadAndCallImage,
|
||||
& ImageInfo,
|
||||
sizeof (SYSTEM_LOAD_AND_CALL_IMAGE));
|
||||
|
||||
DPRINT("W32MU: w32mut.sys loaded\n", Status);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT("W32MU: loading w32mut.sys failed (Status=0x%08lx)\n", Status);
|
||||
return Status;
|
||||
}
|
||||
return Status;
|
||||
}
|
||||
|
||||
/* Public entry point for CSRSS.EXE to load us */
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ServerDllInitialization (int a0, int a1, int a2, int a3, int a4)
|
||||
{
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
/* TODO:
|
||||
* 1) load a kernel mode module to make Kmode happy
|
||||
* (it will provide keyoard, display and pointer
|
||||
* devices for window stations not attached to
|
||||
* the console);
|
||||
*/
|
||||
Status = W32muLoadRemoteTerminalProxy ();
|
||||
/*
|
||||
* 2) pick up from the registry the list of session
|
||||
* access providers (SAP: Local, RFB, RDP, ICA, ...);
|
||||
* 3) initialize each SAP;
|
||||
* 4) on SAP events, provide:
|
||||
* 4.1) create session (SESSION->new);
|
||||
* 4.2) suspend session (SESSION->state_change);
|
||||
* 4.3) destroy session (SESSION->delete).
|
||||
*/
|
||||
return Status;
|
||||
}
|
||||
|
||||
/* EOF */
|
0
reactos/subsys/csrss/win32mu/w32mu.h
Normal file
0
reactos/subsys/csrss/win32mu/w32mu.h
Normal file
4
reactos/subsys/csrss/win32mu/win32mu.def
Normal file
4
reactos/subsys/csrss/win32mu/win32mu.def
Normal file
|
@ -0,0 +1,4 @@
|
|||
; $Id: $
|
||||
LIBRARY win32mu.dll
|
||||
EXPORTS
|
||||
ServerDllInitialization@20
|
5
reactos/subsys/csrss/win32mu/win32mu.rc
Normal file
5
reactos/subsys/csrss/win32mu/win32mu.rc
Normal file
|
@ -0,0 +1,5 @@
|
|||
#define REACTOS_VERSION_DLL
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS/Win32 Multiuser Server\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "win32mu\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "win32mu.dll\0"
|
||||
#include <reactos/version.rc>
|
Loading…
Reference in a new issue