[EVENTLOG]

Partially revert r54678.

svn path=/trunk/; revision=54751
This commit is contained in:
Eric Kohl 2011-12-25 00:57:16 +00:00
parent eec24f8325
commit 846be7ac13
5 changed files with 34 additions and 30 deletions

View file

@ -465,6 +465,20 @@ VOID EventTimeToSystemTime(DWORD EventTime, SYSTEMTIME * 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);

View file

@ -16,7 +16,6 @@
#include <windows.h>
#include <netevent.h>
#include <lpctypes.h>
#include <kefuncs.h>
#include <lpcfuncs.h>
#include <rtlfuncs.h>
#include <obfuncs.h>
@ -169,7 +168,6 @@ BOOL LogfDeleteOffsetInformation(PLOGFILE LogFile,
PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
DWORD dwRecordNumber,
DWORD dwTime,
WORD wType,
WORD wCategory,
DWORD dwEventId,
@ -201,6 +199,9 @@ VOID PRINT_RECORD(PEVENTLOGRECORD pRec);
VOID EventTimeToSystemTime(DWORD EventTime,
SYSTEMTIME * SystemTime);
VOID SystemTimeToEventTime(SYSTEMTIME * pSystemTime,
DWORD * pEventTime);
/* eventsource.c */
VOID InitEventSourceList(VOID);

View file

@ -870,18 +870,18 @@ BOOL LogfWriteData(PLOGFILE LogFile, DWORD BufSize, PBYTE Buffer)
{
DWORD dwWritten;
DWORD dwRead;
SYSTEMTIME st;
EVENTLOGEOF EofRec;
PEVENTLOGRECORD RecBuf;
LARGE_INTEGER logFileSize;
LARGE_INTEGER SystemTime;
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);
@ -1125,7 +1125,6 @@ BOOL LogfAddOffsetInformation(PLOGFILE LogFile, ULONG ulNumber, ULONG ulOffset)
PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
DWORD dwRecordNumber,
DWORD dwTime,
WORD wType,
WORD wCategory,
DWORD dwEventId,
@ -1140,6 +1139,7 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
{
DWORD dwRecSize;
PEVENTLOGRECORD pRec;
SYSTEMTIME SysTime;
WCHAR *str;
UINT i, pos;
PBYTE Buffer;
@ -1148,8 +1148,8 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
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;
@ -1160,10 +1160,10 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
}
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);
@ -1178,8 +1178,9 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
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;
@ -1194,8 +1195,8 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
pRec->UserSidOffset = pos;
if (pos % sizeof(DWORD) != 0)
pos += sizeof(DWORD) - (pos % sizeof(DWORD));
if (pos % 4 != 0)
pos += 4 - (pos % 4);
if (dwSidLength)
{
@ -1222,8 +1223,8 @@ PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
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;
@ -1248,8 +1249,6 @@ LogfReportEvent(WORD wType,
DWORD lastRec;
DWORD recSize;
DWORD dwError;
DWORD dwTime;
LARGE_INTEGER SystemTime;
if (!GetComputerNameW(szComputerName, &dwComputerNameLength))
{
@ -1262,13 +1261,9 @@ LogfReportEvent(WORD wType,
return;
}
NtQuerySystemTime(&SystemTime);
RtlTimeToSecondsSince1970(&SystemTime, &dwTime);
lastRec = LogfGetCurrentRecord(pEventSource->LogFile);
logBuffer = LogfAllocAndBuildNewRecord(&recSize,
dwTime,
lastRec,
wType,
wCategory,

View file

@ -109,8 +109,6 @@ NTSTATUS ProcessPortMessage(VOID)
DWORD dwRecSize;
NTSTATUS Status;
PLOGFILE SystemLog = NULL;
LARGE_INTEGER SystemTime;
ULONG Seconds;
DPRINT("ProcessPortMessage() called\n");
@ -147,10 +145,7 @@ NTSTATUS ProcessPortMessage(VOID)
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),

View file

@ -496,7 +496,6 @@ NTSTATUS ElfrReportEventW(
if (UserSID)
dwUserSidLength = FIELD_OFFSET(SID, SubAuthority[UserSID->SubAuthorityCount]);
LogBuffer = LogfAllocAndBuildNewRecord(&recSize,
Time,
lastRec,
EventType,
EventCategory,