From: Eric Kohl Date: Wed, 3 Sep 2008 20:57:51 +0000 (+0000) Subject: Add a spooler service skeleton. Now the Service-Winetests can be used unmodified. X-Git-Tag: backups/umode-network-branch@37897~238 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=cfa76e5fd66ead46dd366a996fb6ba5a19fd7f48 Add a spooler service skeleton. Now the Service-Winetests can be used unmodified. svn path=/trunk/; revision=35916 --- diff --git a/reactos/base/services/services.rbuild b/reactos/base/services/services.rbuild index e99db88c80f..190ed54801f 100644 --- a/reactos/base/services/services.rbuild +++ b/reactos/base/services/services.rbuild @@ -13,6 +13,9 @@ + + + diff --git a/reactos/base/services/spoolsv/spoolsv.c b/reactos/base/services/spoolsv/spoolsv.c new file mode 100644 index 00000000000..21640f19ec6 --- /dev/null +++ b/reactos/base/services/spoolsv/spoolsv.c @@ -0,0 +1,87 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: services/spoolsv/spoolsv.c + * PURPOSE: Printer spooler + * PROGRAMMER: Eric Kohl + */ + +/* INCLUDES *****************************************************************/ + +#define WIN32_NO_STATUS +#include + +#define NDEBUG +#include + +/* GLOBALS ******************************************************************/ + +#define SERVICE_NAME TEXT("Spooler") + +SERVICE_STATUS_HANDLE ServiceStatusHandle; + + +/* FUNCTIONS *****************************************************************/ + + +static DWORD WINAPI +ServiceControlHandler(DWORD dwControl, + DWORD dwEventType, + LPVOID lpEventData, + LPVOID lpContext) +{ + switch (dwControl) + { + case SERVICE_CONTROL_STOP: + case SERVICE_CONTROL_SHUTDOWN: + return ERROR_SUCCESS; + + default : + return ERROR_CALL_NOT_IMPLEMENTED; + } +} + + + +static VOID CALLBACK +ServiceMain(DWORD argc, LPTSTR *argv) +{ + UNREFERENCED_PARAMETER(argc); + UNREFERENCED_PARAMETER(argv); + + DPRINT("ServiceMain() called\n"); + + ServiceStatusHandle = RegisterServiceCtrlHandlerExW(SERVICE_NAME, + ServiceControlHandler, + NULL); + + + + DPRINT("ServiceMain() done\n"); +} + + +int +wmain(int argc, WCHAR *argv[]) +{ + SERVICE_TABLE_ENTRY ServiceTable[2] = + { + {SERVICE_NAME, ServiceMain}, + {NULL, NULL} + }; + + UNREFERENCED_PARAMETER(argc); + UNREFERENCED_PARAMETER(argv); + + DPRINT("Spoolsv: main() started\n"); + + StartServiceCtrlDispatcher(ServiceTable); + + DPRINT("Spoolsv: main() done\n"); + + ExitThread(0); + + return 0; +} + +/* EOF */ diff --git a/reactos/base/services/spoolsv/spoolsv.rbuild b/reactos/base/services/spoolsv/spoolsv.rbuild new file mode 100644 index 00000000000..ef53b83e372 --- /dev/null +++ b/reactos/base/services/spoolsv/spoolsv.rbuild @@ -0,0 +1,13 @@ + + + + . + 0x600 + 0x0500 + 0x0600 + ntdll + kernel32 + advapi32 + spoolsv.c + spoolsv.rc + diff --git a/reactos/base/services/spoolsv/spoolsv.rc b/reactos/base/services/spoolsv/spoolsv.rc new file mode 100644 index 00000000000..4eeb5b35cb8 --- /dev/null +++ b/reactos/base/services/spoolsv/spoolsv.rc @@ -0,0 +1,4 @@ +#define REACTOS_STR_FILE_DESCRIPTION "Spooler-Service\0" +#define REACTOS_STR_INTERNAL_NAME "Spoolsv\0" +#define REACTOS_STR_ORIGINAL_FILENAME "Spoolsv.exe\0" +#include