X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=base%2Fservices%2Feventlog%2Frpc.c;h=cf855757292a8831adcc9c2fb9159a229044072b;hp=d0efdad7f83384b0b8221e17fa1c635e9a94c8d8;hb=b726d7355f0aa394852fa8c56e59cfc9bbc4293c;hpb=9ab4e6808d239977bcba0066e3ca3a64bec5d64b diff --git a/base/services/eventlog/rpc.c b/base/services/eventlog/rpc.c index d0efdad7f83..cf855757292 100644 --- a/base/services/eventlog/rpc.c +++ b/base/services/eventlog/rpc.c @@ -49,6 +49,9 @@ PLOGHANDLE ElfCreateEventLogHandle(LPCWSTR Name, BOOL Create) PLOGHANDLE lpLogHandle; PLOGFILE currentLogFile = NULL; INT i, LogsActive; + PEVENTSOURCE pEventSource; + + DPRINT("ElfCreateEventLogHandle(Name: %S)\n", Name); lpLogHandle = HeapAlloc(GetProcessHeap(), 0, sizeof(LOGHANDLE) + ((wcslen(Name) + 1) * sizeof(WCHAR))); @@ -70,19 +73,36 @@ PLOGHANDLE ElfCreateEventLogHandle(LPCWSTR Name, BOOL Create) /* If Creating, default to the Application Log in case we fail, as documented on MSDN */ if (Create == TRUE) - lpLogHandle->LogFile = LogfListItemByName(L"Application"); - else - lpLogHandle->LogFile = NULL; + { + pEventSource = GetEventSourceByName(Name); + DPRINT("EventSource: %p\n", pEventSource); + if (pEventSource) + { + DPRINT("EventSource LogFile: %p\n", pEventSource->LogFile); + lpLogHandle->LogFile = pEventSource->LogFile; + } + else + { + DPRINT("EventSource LogFile: Application log file\n"); + lpLogHandle->LogFile = LogfListItemByName(L"Application"); + } - for (i = 1; i <= LogsActive; i++) + DPRINT("LogHandle LogFile: %p\n", lpLogHandle->LogFile); + } + else { - currentLogFile = LogfListItemByIndex(i); + lpLogHandle->LogFile = NULL; - if (_wcsicmp(Name, currentLogFile->LogName) == 0) + for (i = 1; i <= LogsActive; i++) { - lpLogHandle->LogFile = LogfListItemByIndex(i); - lpLogHandle->CurrentRecord = LogfGetOldestRecord(lpLogHandle->LogFile); - break; + currentLogFile = LogfListItemByIndex(i); + + if (_wcsicmp(Name, currentLogFile->LogName) == 0) + { + lpLogHandle->LogFile = LogfListItemByIndex(i); + lpLogHandle->CurrentRecord = LogfGetOldestRecord(lpLogHandle->LogFile); + break; + } } } @@ -267,6 +287,8 @@ NTSTATUS ElfrRegisterEventSourceW( DWORD MinorVersion, IELF_HANDLE *LogHandle) { + DPRINT1("ElfrRegisterEventSourceW()\n"); + if ((MajorVersion != 1) || (MinorVersion != 1)) return STATUS_INVALID_PARAMETER; @@ -274,6 +296,8 @@ NTSTATUS ElfrRegisterEventSourceW( if (RegModuleName->Length > 0) return STATUS_INVALID_PARAMETER; + DPRINT1("ModuleName: %S\n", ModuleName->Buffer); + /*FIXME: UNCServerName must specify the server or empty for local */ /*FIXME: Must verify that caller has write access */