[EVENTLOG]
authorEric Kohl <eric.kohl@reactos.org>
Sun, 25 Dec 2011 00:57:16 +0000 (00:57 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sun, 25 Dec 2011 00:57:16 +0000 (00:57 +0000)
Partially revert r54678.

svn path=/trunk/; revision=54751

reactos/base/services/eventlog/eventlog.c
reactos/base/services/eventlog/eventlog.h
reactos/base/services/eventlog/file.c
reactos/base/services/eventlog/logport.c
reactos/base/services/eventlog/rpc.c

index 872ea2c..aebcc8a 100644 (file)
@@ -465,6 +465,20 @@ VOID EventTimeToSystemTime(DWORD EventTime, SYSTEMTIME * pSystemTime)
     FileTimeToSystemTime(&ftLocal, pSystemTime);
 }
 
     FileTimeToSystemTime(&ftLocal, pSystemTime);
 }
 
+VOID SystemTimeToEventTime(SYSTEMTIME * pSystemTime, DWORD * pEventTime)
+{
+    SYSTEMTIME st1970 = { 1970, 1, 0, 1, 0, 0, 0, 0 };
+    union
+    {
+        FILETIME ft;
+        ULONGLONG ll;
+    } Time, u1970;
+
+    SystemTimeToFileTime(pSystemTime, &Time.ft);
+    SystemTimeToFileTime(&st1970, &u1970.ft);
+    *pEventTime = (DWORD)((Time.ll - u1970.ll) / 10000000ull);
+}
+
 VOID PRINT_HEADER(PEVENTLOGHEADER header)
 {
     DPRINT("HeaderSize = %d\n", header->HeaderSize);
 VOID PRINT_HEADER(PEVENTLOGHEADER header)
 {
     DPRINT("HeaderSize = %d\n", header->HeaderSize);
index 5298a24..0de6c87 100644 (file)
@@ -16,7 +16,6 @@
 #include <windows.h>
 #include <netevent.h>
 #include <lpctypes.h>
 #include <windows.h>
 #include <netevent.h>
 #include <lpctypes.h>
-#include <kefuncs.h>
 #include <lpcfuncs.h>
 #include <rtlfuncs.h>
 #include <obfuncs.h>
 #include <lpcfuncs.h>
 #include <rtlfuncs.h>
 #include <obfuncs.h>
@@ -169,7 +168,6 @@ BOOL LogfDeleteOffsetInformation(PLOGFILE LogFile,
 
 PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
                                  DWORD dwRecordNumber,
 
 PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
                                  DWORD dwRecordNumber,
-                                 DWORD dwTime,
                                  WORD wType,
                                  WORD wCategory,
                                  DWORD dwEventId,
                                  WORD wType,
                                  WORD wCategory,
                                  DWORD dwEventId,
@@ -201,6 +199,9 @@ VOID PRINT_RECORD(PEVENTLOGRECORD pRec);
 VOID EventTimeToSystemTime(DWORD EventTime,
                            SYSTEMTIME * SystemTime);
 
 VOID EventTimeToSystemTime(DWORD EventTime,
                            SYSTEMTIME * SystemTime);
 
+VOID SystemTimeToEventTime(SYSTEMTIME * pSystemTime,
+                           DWORD * pEventTime);
+
 /* eventsource.c */
 VOID InitEventSourceList(VOID);
 
 /* eventsource.c */
 VOID InitEventSourceList(VOID);
 
index ce80163..245bb6b 100644 (file)
@@ -870,18 +870,18 @@ BOOL LogfWriteData(PLOGFILE LogFile, DWORD BufSize, PBYTE Buffer)
 {
     DWORD dwWritten;
     DWORD dwRead;
 {
     DWORD dwWritten;
     DWORD dwRead;
+    SYSTEMTIME st;
     EVENTLOGEOF EofRec;
     PEVENTLOGRECORD RecBuf;
     LARGE_INTEGER logFileSize;
     EVENTLOGEOF EofRec;
     PEVENTLOGRECORD RecBuf;
     LARGE_INTEGER logFileSize;
-    LARGE_INTEGER SystemTime;
     ULONG RecOffSet;
     ULONG WriteOffSet;
 
     if (!Buffer)
         return FALSE;
 
     ULONG RecOffSet;
     ULONG WriteOffSet;
 
     if (!Buffer)
         return FALSE;
 
-    NtQuerySystemTime(&SystemTime);
-    RtlTimeToSecondsSince1970(&SystemTime, &((PEVENTLOGRECORD) Buffer)->TimeWritten);
+    GetSystemTime(&st);
+    SystemTimeToEventTime(&st, &((PEVENTLOGRECORD) Buffer)->TimeWritten);
 
     EnterCriticalSection(&LogFile->cs);
 
 
     EnterCriticalSection(&LogFile->cs);
 
@@ -1125,7 +1125,6 @@ BOOL LogfAddOffsetInformation(PLOGFILE LogFile, ULONG ulNumber, ULONG ulOffset)
 
 PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
                                  DWORD   dwRecordNumber,
 
 PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
                                  DWORD   dwRecordNumber,
-                                 DWORD   dwTime,
                                  WORD    wType,
                                  WORD    wCategory,
                                  DWORD   dwEventId,
                                  WORD    wType,
                                  WORD    wCategory,
                                  DWORD   dwEventId,
@@ -1140,6 +1139,7 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
 {
     DWORD dwRecSize;
     PEVENTLOGRECORD pRec;
 {
     DWORD dwRecSize;
     PEVENTLOGRECORD pRec;
+    SYSTEMTIME SysTime;
     WCHAR *str;
     UINT i, pos;
     PBYTE Buffer;
     WCHAR *str;
     UINT i, pos;
     PBYTE Buffer;
@@ -1148,8 +1148,8 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
         sizeof(EVENTLOGRECORD) + (lstrlenW(ComputerName) +
                                   lstrlenW(SourceName) + 2) * sizeof(WCHAR);
 
         sizeof(EVENTLOGRECORD) + (lstrlenW(ComputerName) +
                                   lstrlenW(SourceName) + 2) * sizeof(WCHAR);
 
-    if (dwRecSize % sizeof(DWORD) != 0)
-        dwRecSize += sizeof(DWORD) - (dwRecSize % sizeof(DWORD));
+    if (dwRecSize % 4 != 0)
+        dwRecSize += 4 - (dwRecSize % 4);
 
     dwRecSize += dwSidLength;
 
 
     dwRecSize += dwSidLength;
 
@@ -1160,10 +1160,10 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
     }
 
     dwRecSize += dwDataSize;
     }
 
     dwRecSize += dwDataSize;
-    if (dwRecSize % sizeof(DWORD) != 0)
-        dwRecSize += sizeof(DWORD) - (dwRecSize % sizeof(DWORD));
+    if (dwRecSize % 4 != 0)
+        dwRecSize += 4 - (dwRecSize % 4);
 
 
-    dwRecSize += sizeof(DWORD);
+    dwRecSize += 4;
 
     Buffer = HeapAlloc(MyHeap, HEAP_ZERO_MEMORY, dwRecSize);
 
 
     Buffer = HeapAlloc(MyHeap, HEAP_ZERO_MEMORY, dwRecSize);
 
@@ -1178,8 +1178,9 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
     pRec->Reserved = LOGFILE_SIGNATURE;
     pRec->RecordNumber = dwRecordNumber;
 
     pRec->Reserved = LOGFILE_SIGNATURE;
     pRec->RecordNumber = dwRecordNumber;
 
-    pRec->TimeGenerated = dwTime;
-    pRec->TimeWritten = dwTime;
+    GetSystemTime(&SysTime);
+    SystemTimeToEventTime(&SysTime, &pRec->TimeGenerated);
+    SystemTimeToEventTime(&SysTime, &pRec->TimeWritten);
 
     pRec->EventID = dwEventId;
     pRec->EventType = wType;
 
     pRec->EventID = dwEventId;
     pRec->EventType = wType;
@@ -1194,8 +1195,8 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
 
     pRec->UserSidOffset = pos;
 
 
     pRec->UserSidOffset = pos;
 
-    if (pos % sizeof(DWORD) != 0)
-        pos += sizeof(DWORD) - (pos % sizeof(DWORD));
+    if (pos % 4 != 0)
+        pos += 4 - (pos % 4);
 
     if (dwSidLength)
     {
 
     if (dwSidLength)
     {
@@ -1222,8 +1223,8 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
         pos += dwDataSize;
     }
 
         pos += dwDataSize;
     }
 
-    if (pos % sizeof(DWORD) != 0)
-        pos += sizeof(DWORD) - (pos % sizeof(DWORD));
+    if (pos % 4 != 0)
+        pos += 4 - (pos % 4);
 
     *((PDWORD) (Buffer + pos)) = dwRecSize;
 
 
     *((PDWORD) (Buffer + pos)) = dwRecSize;
 
@@ -1248,8 +1249,6 @@ LogfReportEvent(WORD wType,
     DWORD lastRec;
     DWORD recSize;
     DWORD dwError;
     DWORD lastRec;
     DWORD recSize;
     DWORD dwError;
-    DWORD dwTime;
-    LARGE_INTEGER SystemTime;
 
     if (!GetComputerNameW(szComputerName, &dwComputerNameLength))
     {
 
     if (!GetComputerNameW(szComputerName, &dwComputerNameLength))
     {
@@ -1262,13 +1261,9 @@ LogfReportEvent(WORD wType,
         return;
     }
 
         return;
     }
 
-    NtQuerySystemTime(&SystemTime);
-    RtlTimeToSecondsSince1970(&SystemTime, &dwTime);
-
     lastRec = LogfGetCurrentRecord(pEventSource->LogFile);
 
     logBuffer = LogfAllocAndBuildNewRecord(&recSize,
     lastRec = LogfGetCurrentRecord(pEventSource->LogFile);
 
     logBuffer = LogfAllocAndBuildNewRecord(&recSize,
-                                           dwTime,
                                            lastRec,
                                            wType,
                                            wCategory,
                                            lastRec,
                                            wType,
                                            wCategory,
index 683513e..d82cf4c 100644 (file)
@@ -109,8 +109,6 @@ NTSTATUS ProcessPortMessage(VOID)
     DWORD dwRecSize;
     NTSTATUS Status;
     PLOGFILE SystemLog = NULL;
     DWORD dwRecSize;
     NTSTATUS Status;
     PLOGFILE SystemLog = NULL;
-    LARGE_INTEGER SystemTime;
-    ULONG Seconds;
 
     DPRINT("ProcessPortMessage() called\n");
 
 
     DPRINT("ProcessPortMessage() called\n");
 
@@ -147,10 +145,7 @@ NTSTATUS ProcessPortMessage(VOID)
             Message = (PIO_ERROR_LOG_MESSAGE) & Request.Message;
             ulRecNum = SystemLog ? SystemLog->Header.CurrentRecordNumber : 0;
 
             Message = (PIO_ERROR_LOG_MESSAGE) & Request.Message;
             ulRecNum = SystemLog ? SystemLog->Header.CurrentRecordNumber : 0;
 
-            NtQuerySystemTime(&SystemTime);
-            RtlTimeToSecondsSince1970(&SystemTime, &Seconds);
-
-            pRec = (PEVENTLOGRECORD) LogfAllocAndBuildNewRecord(&dwRecSize, Seconds,
+            pRec = (PEVENTLOGRECORD) LogfAllocAndBuildNewRecord(&dwRecSize,
                     ulRecNum, Message->Type, Message->EntryData.EventCategory,
                     Message->EntryData.ErrorCode,
                     (WCHAR *) (((PBYTE) Message) + Message->DriverNameOffset),
                     ulRecNum, Message->Type, Message->EntryData.EventCategory,
                     Message->EntryData.ErrorCode,
                     (WCHAR *) (((PBYTE) Message) + Message->DriverNameOffset),
index 682b554..91a0f77 100644 (file)
@@ -496,7 +496,6 @@ NTSTATUS ElfrReportEventW(
     if (UserSID)
         dwUserSidLength = FIELD_OFFSET(SID, SubAuthority[UserSID->SubAuthorityCount]);
     LogBuffer = LogfAllocAndBuildNewRecord(&recSize,
     if (UserSID)
         dwUserSidLength = FIELD_OFFSET(SID, SubAuthority[UserSID->SubAuthorityCount]);
     LogBuffer = LogfAllocAndBuildNewRecord(&recSize,
-                                           Time,
                                            lastRec,
                                            EventType,
                                            EventCategory,
                                            lastRec,
                                            EventType,
                                            EventCategory,