From fb80c5416df977608d86a5c103ab57cbc8e84eea Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Mon, 7 Feb 2005 11:35:10 +0000 Subject: [PATCH] moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary... svn path=/trunk/; revision=13458 --- reactos/lib/smdll/compses.c | 39 ----------------- reactos/lib/smdll/connect.c | 83 ------------------------------------ reactos/lib/smdll/dllmain.c | 17 -------- reactos/lib/smdll/execpgm.c | 49 --------------------- reactos/lib/smdll/makefile | 34 --------------- reactos/lib/smdll/readme.txt | 18 -------- reactos/lib/smdll/smdll.def | 5 --- reactos/lib/smdll/smdll.rc | 4 -- reactos/lib/smdll/testapi.c | 20 --------- 9 files changed, 269 deletions(-) delete mode 100644 reactos/lib/smdll/compses.c delete mode 100644 reactos/lib/smdll/connect.c delete mode 100644 reactos/lib/smdll/dllmain.c delete mode 100644 reactos/lib/smdll/execpgm.c delete mode 100644 reactos/lib/smdll/makefile delete mode 100644 reactos/lib/smdll/readme.txt delete mode 100644 reactos/lib/smdll/smdll.def delete mode 100644 reactos/lib/smdll/smdll.rc delete mode 100644 reactos/lib/smdll/testapi.c diff --git a/reactos/lib/smdll/compses.c b/reactos/lib/smdll/compses.c deleted file mode 100644 index 9f7e324f957..00000000000 --- a/reactos/lib/smdll/compses.c +++ /dev/null @@ -1,39 +0,0 @@ -/* $Id$ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS system libraries - * FILE: lib/smlib/compses.c - * PURPOSE: Call SM API SM_API_COMPLETE_SESSION - */ -#define NTOS_MODE_USER -#include -#include -#include - -NTSTATUS STDCALL -SmCompleteSession (HANDLE hSmApiPort, HANDLE hSbApiPort, HANDLE hApiPort) -{ - NTSTATUS Status; - SM_PORT_MESSAGE SmReqMsg; - - /* Marshal Ses in the LPC message */ - SmReqMsg.CompSes.hApiPort = hApiPort; - SmReqMsg.CompSes.hSbApiPort = hSbApiPort; - - /* SM API to invoke */ - SmReqMsg.ApiIndex = SM_API_COMPLETE_SESSION; - - /* Port message */ - SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE; - SmReqMsg.Header.DataSize = SM_PORT_DATA_SIZE(SmReqMsg.CompSes); - SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE; - Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg); - if (NT_SUCCESS(Status)) - { - return SmReqMsg.Status; - } - DbgPrint ("%s failed (Status=0x%08lx)\n", __FUNCTION__, Status); - return Status; -} - -/* EOF */ diff --git a/reactos/lib/smdll/connect.c b/reactos/lib/smdll/connect.c deleted file mode 100644 index 1ac5d51d6f6..00000000000 --- a/reactos/lib/smdll/connect.c +++ /dev/null @@ -1,83 +0,0 @@ -/* $Id$ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS system libraries - * FILE: reactos/lib/smdll/connect.c - * PURPOSE: Connect to the API LPC port exposed by the SM - */ -#define NTOS_MODE_USER -#include -#include -#include -#include - -/********************************************************************** - * NAME EXPORTED - * SmConnectApiPort/4 - * - * DESCRIPTION - * Connect to SM API port and register a session "begin" port (Sb) - * or to issue API requests to SmApiPort. - * - * ARGUMENTS - * pSbApiPortName: name of the Sb port the calling subsystem - * server already created in the system name space; - * hSbApiPort: LPC port handle (checked, but not used); - * dwSubsystem: a valid IMAGE_SUBSYSTEM_xxx value; - * phSmApiPort: a pointer to a HANDLE, which will be - * filled with a valid client-side LPC comm port. - * - * RETURN VALUE - * If all three optional values are omitted, an LPC status. - * STATUS_INVALID_PARAMETER_MIX if PortName is defined and - * both hSbApiPort and dwSubsystem are 0. - */ -NTSTATUS STDCALL -SmConnectApiPort (IN PUNICODE_STRING pSbApiPortName OPTIONAL, - IN HANDLE hSbApiPort OPTIONAL, - IN DWORD dwSubsystem OPTIONAL, - IN OUT PHANDLE phSmApiPort) -{ - UNICODE_STRING SmApiPortName; - SECURITY_QUALITY_OF_SERVICE SecurityQos; - NTSTATUS Status = STATUS_SUCCESS; - SM_CONNECT_DATA ConnectData = {0,{0}}; - ULONG ConnectDataLength = 0; - - if (pSbApiPortName) - { - if (NULL == hSbApiPort || IMAGE_SUBSYSTEM_UNKNOWN == dwSubsystem) - { - return STATUS_INVALID_PARAMETER_MIX; - } - ConnectData.Subsystem = dwSubsystem; - memmove (& ConnectData.SbName, pSbApiPortName->Buffer, pSbApiPortName->Length); - } - ConnectDataLength = sizeof (ConnectData); - - SecurityQos.Length = sizeof (SecurityQos); - SecurityQos.ImpersonationLevel = SecurityIdentification; - SecurityQos.ContextTrackingMode = TRUE; - SecurityQos.EffectiveOnly = TRUE; - - RtlInitUnicodeString (& SmApiPortName, SM_API_PORT_NAME); - - Status = NtConnectPort ( - phSmApiPort, - & SmApiPortName, - & SecurityQos, - NULL, - NULL, - NULL, - & ConnectData, - & ConnectDataLength - ); - if (NT_SUCCESS(Status)) - { - return STATUS_SUCCESS; - } - DbgPrint ("%s failed (Status=0x%08lx)\n", __FUNCTION__, Status); - return Status; -} - -/* EOF */ diff --git a/reactos/lib/smdll/dllmain.c b/reactos/lib/smdll/dllmain.c deleted file mode 100644 index 3d6e48820d3..00000000000 --- a/reactos/lib/smdll/dllmain.c +++ /dev/null @@ -1,17 +0,0 @@ -/* $Id$ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS - * FILE: lib/smdll/dllmain.c - * PURPOSE: SM Helper Library - */ - -#define NTOS_MODE_USER -#include - -BOOL STDCALL DllMain(HANDLE hinstDll, DWORD fdwReason, LPVOID fImpLoad) -{ - return TRUE; -} - -/* EOF */ diff --git a/reactos/lib/smdll/execpgm.c b/reactos/lib/smdll/execpgm.c deleted file mode 100644 index f5b2e5fa514..00000000000 --- a/reactos/lib/smdll/execpgm.c +++ /dev/null @@ -1,49 +0,0 @@ -/* $Id$ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS system libraries - * FILE: lib/smdll/execpgm.c - * PURPOSE: Call SM API SM_API_EXECPGM - */ -#define NTOS_MODE_USER -#include -#include -#include -#include - -NTSTATUS STDCALL -SmExecPgm (HANDLE hSmApiPort, PUNICODE_STRING Pgm) -{ - NTSTATUS Status; - SM_PORT_MESSAGE SmReqMsg; - - - /* Check Pgm's length */ - if (Pgm->Length > (sizeof (Pgm->Buffer[0]) * SM_EXEXPGM_MAX_LENGTH)) - { - return STATUS_INVALID_PARAMETER; - } - /* Marshal Pgm in the LPC message */ - RtlZeroMemory (& SmReqMsg, sizeof SmReqMsg); - SmReqMsg.ExecPgm.NameLength = Pgm->Length; - RtlCopyMemory (SmReqMsg.ExecPgm.Name, Pgm->Buffer, Pgm->Length); - - /* SM API to invoke */ - SmReqMsg.ApiIndex = SM_API_EXECUTE_PROGRAMME; - - /* LPC message */ - SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE; - SmReqMsg.Header.DataSize = SM_PORT_DATA_SIZE(SmReqMsg.ExecPgm); - SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE; - - /* Call SM and wait for a reply */ - Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg); - if (NT_SUCCESS(Status)) - { - return SmReqMsg.Status; - } - DbgPrint ("%s failed (Status=0x%08lx)\n", __FUNCTION__, Status); - return Status; -} - -/* EOF */ diff --git a/reactos/lib/smdll/makefile b/reactos/lib/smdll/makefile deleted file mode 100644 index d14e1d598f4..00000000000 --- a/reactos/lib/smdll/makefile +++ /dev/null @@ -1,34 +0,0 @@ -# $Id$ - -PATH_TO_TOP = ../.. - -TARGET_TYPE = dynlink - -TARGET_NAME = smdll - -TARGET_SDKLIBS = ntdll.a - -TARGET_CFLAGS = -I./include -Wall -Werror - -# require os code to explicitly request A/W version of structs/functions -TARGET_CFLAGS += -D_DISABLE_TIDENTS - -TARGET_LFLAGS = -nostartfiles -nostdlib - -#TARGET_BASE = - -TARGET_OBJECTS = \ - dllmain.o \ - connect.o \ - execpgm.o \ - compses.o - -DEP_OBJECTS = $(TARGET_OBJECTS) - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -include $(TOOLS_PATH)/depend.mk - -# EOF diff --git a/reactos/lib/smdll/readme.txt b/reactos/lib/smdll/readme.txt deleted file mode 100644 index 8265e596dcf..00000000000 --- a/reactos/lib/smdll/readme.txt +++ /dev/null @@ -1,18 +0,0 @@ -$Id$ - -This is SMDLL: a helper library to talk to the ReactOS session manager (SM). - -It should be linked in the following components: - -a) the SM itself, because iy registers for managing native processes - IMAGE_SUBSYSTEM_NATIVE; - -b) environment subsystem servers, because each one should register in - the SM its own subsystem (willing to manageg those processes); - -c) terminal emulators for optional subsystems, like posixw32 and os2w32, - to ask the SM to start the optional subsystem server they need connect to; - -d) system and development utilites to debug/query the SM. - -2004-02-15 ea \ No newline at end of file diff --git a/reactos/lib/smdll/smdll.def b/reactos/lib/smdll/smdll.def deleted file mode 100644 index 76d524637b6..00000000000 --- a/reactos/lib/smdll/smdll.def +++ /dev/null @@ -1,5 +0,0 @@ -LIBRARY SMDLL.DLL -EXPORTS -SmCompleteSession@12 -SmConnectApiPort@16 -SmExecPgm@8 \ No newline at end of file diff --git a/reactos/lib/smdll/smdll.rc b/reactos/lib/smdll/smdll.rc deleted file mode 100644 index ae16f7bbdd8..00000000000 --- a/reactos/lib/smdll/smdll.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "ReactOS SM Helper\0" -#define REACTOS_STR_INTERNAL_NAME "smdll.dll\0" -#define REACTOS_STR_ORIGINAL_FILENAME "smdll.dll\0" -#include diff --git a/reactos/lib/smdll/testapi.c b/reactos/lib/smdll/testapi.c deleted file mode 100644 index a1ecde2cf7f..00000000000 --- a/reactos/lib/smdll/testapi.c +++ /dev/null @@ -1,20 +0,0 @@ -/* $Id$ */ -#define NTOS_MODE_USER -#include -#include - -VOID STDCALL SmPrintPortMessage (PSM_PORT_MESSAGE SmMessage) -{ - DbgPrint ("SM_PORT_MESSAGE %08lx:\n", (ULONG) SmMessage); - DbgPrint (" Header:\n"); - DbgPrint (" MessageType = %u\n", SmMessage->Header.MessageType); - DbgPrint (" DataSize = %d\n", SmMessage->Header.DataSize); - DbgPrint (" MessageSize = %d\n", SmMessage->Header.MessageSize); - DbgPrint (" ApiIndex = %ld\n", SmMessage->ApiIndex); - DbgPrint (" Status = %08lx\n", SmMessage->Status); - DbgPrint (" ExecPgm:\n"); - DbgPrint (" NameLength = %ld\n", SmMessage->ExecPgm.NameLength); - DbgPrint (" Name = %ls\n", (LPWSTR) & SmMessage->ExecPgm.Name); -} -/* EOF */ -