From 793415253c32fde9217dab8534f9a7ae7d8be8f8 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Wed, 1 Jun 2005 21:57:52 +0000 Subject: [PATCH] - Start the logging thread from ServiceMain. - Move UNICODE definition to the configuration file. - Code cleanup. svn path=/trunk/; revision=15721 --- reactos/services/eventlog/eventlog.c | 47 ++++++++------------- reactos/services/eventlog/logport.c | 62 ++++++++++++++-------------- 2 files changed, 48 insertions(+), 61 deletions(-) diff --git a/reactos/services/eventlog/eventlog.c b/reactos/services/eventlog/eventlog.c index c5590fdbbf1..b67db9fdf4b 100644 --- a/reactos/services/eventlog/eventlog.c +++ b/reactos/services/eventlog/eventlog.c @@ -1,6 +1,6 @@ /* * ReactOS kernel - * Copyright (C) 2002 ReactOS Team + * Copyright (C) 2002, 2005 ReactOS Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,8 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id$ - * +/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * FILE: services/eventlog/eventlog.c @@ -27,8 +26,6 @@ /* INCLUDES *****************************************************************/ -#define UNICODE - #define NTOS_MODE_USER #include #include @@ -40,9 +37,17 @@ #include +VOID CALLBACK +ServiceMain(DWORD argc, LPTSTR *argv); + /* GLOBALS ******************************************************************/ +SERVICE_TABLE_ENTRY ServiceTable[2] = +{ + {L"EventLog", (LPSERVICE_MAIN_FUNCTION)ServiceMain}, + {NULL, NULL} +}; /* FUNCTIONS *****************************************************************/ @@ -53,6 +58,10 @@ ServiceMain(DWORD argc, LPTSTR *argv) { DPRINT("ServiceMain() called\n"); + if (StartPortThread() == FALSE) + { + DPRINT("StartPortThread() failed\n"); + } DPRINT("ServiceMain() done\n"); } @@ -61,37 +70,15 @@ ServiceMain(DWORD argc, LPTSTR *argv) int main(int argc, char *argv[]) { - SERVICE_TABLE_ENTRY ServiceTable[2] = {{L"EventLog", (LPSERVICE_MAIN_FUNCTION)ServiceMain}, - {NULL, NULL}}; - - HANDLE hEvent; -// NTSTATUS Status; - - DPRINT("EventLog started\n"); - - - - + DPRINT("main() called\n"); StartServiceCtrlDispatcher(ServiceTable); - DPRINT("StartServiceCtrlDispatcher() done\n"); - - if (StartPortThread() == FALSE) - { - DPRINT1("StartPortThread() failed\n"); - } - - DPRINT("EventLog waiting\n"); - - hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); - WaitForSingleObject(hEvent, INFINITE); - - DPRINT("EventLog done\n"); + DPRINT("main() done\n"); ExitThread(0); - return(0); + return 0; } /* EOF */ diff --git a/reactos/services/eventlog/logport.c b/reactos/services/eventlog/logport.c index 84564350e5f..77992e25760 100644 --- a/reactos/services/eventlog/logport.c +++ b/reactos/services/eventlog/logport.c @@ -16,8 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id$ - * +/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * FILE: services/eventlog/logport.c @@ -27,8 +26,6 @@ /* INCLUDES *****************************************************************/ -#define UNICODE - #define NTOS_MODE_USER #include #include @@ -50,7 +47,7 @@ HANDLE MessagePortHandle = NULL; /* FUNCTIONS ****************************************************************/ static NTSTATUS -InitLogPort (VOID) +InitLogPort(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING PortName; @@ -93,27 +90,27 @@ InitLogPort (VOID) TRUE, NULL, NULL); - if (!NT_SUCCESS (Status)) + if (!NT_SUCCESS(Status)) { DPRINT1("NtAcceptConnectPort() failed (Status %lx)\n", Status); goto ByeBye; } - Status = NtCompleteConnectPort (MessagePortHandle); - if (!NT_SUCCESS (Status)) + Status = NtCompleteConnectPort(MessagePortHandle); + if (!NT_SUCCESS(Status)) { DPRINT1("NtCompleteConnectPort() failed (Status %lx)\n", Status); goto ByeBye; } ByeBye: - if (!NT_SUCCESS (Status)) + if (!NT_SUCCESS(Status)) { if (ConnectPortHandle != NULL) - NtClose (ConnectPortHandle); + NtClose(ConnectPortHandle); if (MessagePortHandle != NULL) - NtClose (MessagePortHandle); + NtClose(MessagePortHandle); } return Status; @@ -148,40 +145,40 @@ ProcessPortMessage(VOID) break; } - DPRINT ("Received message\n"); + DPRINT("Received message\n"); if (Request.Header.MessageType == LPC_PORT_CLOSED) { - DPRINT ("Port closed\n"); + DPRINT("Port closed\n"); - return (STATUS_UNSUCCESSFUL); + return STATUS_SUCCESS; } if (Request.Header.MessageType == LPC_REQUEST) { - DPRINT ("Received request\n"); + DPRINT("Received request\n"); } else if (Request.Header.MessageType == LPC_DATAGRAM) { - DPRINT ("Received datagram\n"); + DPRINT("Received datagram\n"); Message = (PIO_ERROR_LOG_MESSAGE)&Request.Data; - DPRINT ("Message->Type %hx\n", Message->Type); - DPRINT ("Message->Size %hu\n", Message->Size); + DPRINT("Message->Type %hx\n", Message->Type); + DPRINT("Message->Size %hu\n", Message->Size); //#ifndef NDEBUG - DbgPrint ("\n Error mesage:\n"); - DbgPrint ("Error code: %lx\n", Message->EntryData.ErrorCode); - DbgPrint ("Retry count: %u\n", Message->EntryData.RetryCount); - DbgPrint ("Sequence number: %lu\n", Message->EntryData.SequenceNumber); + DbgPrint("\n Error mesage:\n"); + DbgPrint("Error code: %lx\n", Message->EntryData.ErrorCode); + DbgPrint("Retry count: %u\n", Message->EntryData.RetryCount); + DbgPrint("Sequence number: %lu\n", Message->EntryData.SequenceNumber); if (Message->DriverNameLength != 0) { - DbgPrint ("Driver name: %.*S\n", - Message->DriverNameLength / sizeof(WCHAR), - (PWCHAR)((ULONG_PTR)Message + Message->DriverNameOffset)); + DbgPrint("Driver name: %.*S\n", + Message->DriverNameLength / sizeof(WCHAR), + (PWCHAR)((ULONG_PTR)Message + Message->DriverNameOffset)); } if (Message->EntryData.NumberOfStrings != 0) @@ -189,13 +186,16 @@ ProcessPortMessage(VOID) p = (PWSTR)((ULONG_PTR)&Message->EntryData + Message->EntryData.StringOffset); for (i = 0; i < Message->EntryData.NumberOfStrings; i++) { - DbgPrint ("String %lu: %S\n", i, p); + DbgPrint("String %lu: %S\n", i, p); p += wcslen(p) + 1; } DbgPrint("\n"); } //#endif + + /* FIXME: Enqueue message */ + } } @@ -210,7 +210,7 @@ PortThreadRoutine(PVOID Param) Status = InitLogPort(); if (!NT_SUCCESS(Status)) - return(Status); + return Status; while (NT_SUCCESS(Status)) { @@ -218,12 +218,12 @@ PortThreadRoutine(PVOID Param) } if (ConnectPortHandle != NULL) - NtClose (ConnectPortHandle); + NtClose(ConnectPortHandle); if (MessagePortHandle != NULL) - NtClose (MessagePortHandle); + NtClose(MessagePortHandle); - return(Status); + return Status; } @@ -239,7 +239,7 @@ StartPortThread(VOID) 0, &ThreadId); - return((PortThreadHandle != NULL)); + return (PortThreadHandle != NULL); } /* EOF */