mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:42:57 +00:00
Add missing return value checks. Finally fix bug #1526
svn path=/trunk/; revision=23138
This commit is contained in:
parent
6a97df1eec
commit
ba51348c89
1 changed files with 219 additions and 78 deletions
|
@ -30,11 +30,15 @@ BOOL LogfInitializeNew(PLOGFILE LogFile)
|
||||||
LogFile->Header.NextRecord = 1;
|
LogFile->Header.NextRecord = 1;
|
||||||
|
|
||||||
LogFile->Header.Signature = LOGFILE_SIGNATURE;
|
LogFile->Header.Signature = LOGFILE_SIGNATURE;
|
||||||
WriteFile(LogFile->hFile,
|
if(!WriteFile(LogFile->hFile,
|
||||||
&LogFile->Header,
|
&LogFile->Header,
|
||||||
sizeof(FILE_HEADER),
|
sizeof(FILE_HEADER),
|
||||||
&dwWritten,
|
&dwWritten,
|
||||||
NULL);
|
NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("WriteFile failed:%d!\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
EofRec.Ones = 0x11111111;
|
EofRec.Ones = 0x11111111;
|
||||||
EofRec.Twos = 0x22222222;
|
EofRec.Twos = 0x22222222;
|
||||||
|
@ -47,9 +51,21 @@ BOOL LogfInitializeNew(PLOGFILE LogFile)
|
||||||
EofRec.StartOffset = LogFile->Header.FirstRecordOffset;
|
EofRec.StartOffset = LogFile->Header.FirstRecordOffset;
|
||||||
EofRec.EndOffset = LogFile->Header.EofOffset;
|
EofRec.EndOffset = LogFile->Header.EofOffset;
|
||||||
|
|
||||||
WriteFile(LogFile->hFile, &EofRec, sizeof(EOF_RECORD), &dwWritten, NULL);
|
if(!WriteFile(LogFile->hFile,
|
||||||
|
&EofRec,
|
||||||
|
sizeof(EOF_RECORD),
|
||||||
|
&dwWritten,
|
||||||
|
NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("WriteFile failed:%d!\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
FlushFileBuffers(LogFile->hFile);
|
if(!FlushFileBuffers(LogFile->hFile))
|
||||||
|
{
|
||||||
|
DPRINT1("FlushFileBuffers failed:%d!\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -62,11 +78,21 @@ BOOL LogfInitializeExisting(PLOGFILE LogFile)
|
||||||
PDWORD pdwRecSize2;
|
PDWORD pdwRecSize2;
|
||||||
PEVENTLOGRECORD RecBuf;
|
PEVENTLOGRECORD RecBuf;
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN);
|
if(SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN) ==
|
||||||
ReadFile(LogFile->hFile,
|
INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ReadFile(LogFile->hFile,
|
||||||
&LogFile->Header,
|
&LogFile->Header,
|
||||||
sizeof(FILE_HEADER),
|
sizeof(FILE_HEADER),
|
||||||
&dwRead, NULL);
|
&dwRead, NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwRead != sizeof(FILE_HEADER))
|
if(dwRead != sizeof(FILE_HEADER))
|
||||||
{
|
{
|
||||||
|
@ -104,20 +130,34 @@ BOOL LogfInitializeExisting(PLOGFILE LogFile)
|
||||||
NULL,
|
NULL,
|
||||||
FILE_CURRENT);
|
FILE_CURRENT);
|
||||||
|
|
||||||
ReadFile(LogFile->hFile,
|
if(dwFilePointer == INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ReadFile(LogFile->hFile,
|
||||||
&dwRecSize,
|
&dwRecSize,
|
||||||
sizeof(dwRecSize),
|
sizeof(dwRecSize),
|
||||||
&dwRead,
|
&dwRead,
|
||||||
NULL);
|
NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwRead != sizeof(dwRecSize))
|
if(dwRead != sizeof(dwRecSize))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ReadFile(LogFile->hFile,
|
if(!ReadFile(LogFile->hFile,
|
||||||
&dwRecSign,
|
&dwRecSign,
|
||||||
sizeof(dwRecSign),
|
sizeof(dwRecSign),
|
||||||
&dwRead,
|
&dwRead,
|
||||||
NULL);
|
NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile() failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwRead != sizeof(dwRecSize))
|
if(dwRead != sizeof(dwRecSize))
|
||||||
break;
|
break;
|
||||||
|
@ -129,13 +169,33 @@ BOOL LogfInitializeExisting(PLOGFILE LogFile)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, -((LONG)sizeof(DWORD)*2), NULL, FILE_CURRENT);
|
if(SetFilePointer(LogFile->hFile,
|
||||||
|
-((LONG)sizeof(DWORD)*2),
|
||||||
|
NULL,
|
||||||
|
FILE_CURRENT) == INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
RecBuf = (PEVENTLOGRECORD) HeapAlloc(MyHeap, 0, dwRecSize);
|
RecBuf = (PEVENTLOGRECORD) HeapAlloc(MyHeap, 0, dwRecSize);
|
||||||
ReadFile(LogFile->hFile,
|
|
||||||
|
if(!RecBuf)
|
||||||
|
{
|
||||||
|
DPRINT1("Can't allocate heap!\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ReadFile(LogFile->hFile,
|
||||||
RecBuf,
|
RecBuf,
|
||||||
dwRecSize,
|
dwRecSize,
|
||||||
&dwRead,
|
&dwRead,
|
||||||
NULL);
|
NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile() failed! %d\n", GetLastError());
|
||||||
|
HeapFree(MyHeap, 0, RecBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwRead != dwRecSize)
|
if(dwRead != dwRecSize)
|
||||||
{
|
{
|
||||||
|
@ -146,7 +206,7 @@ BOOL LogfInitializeExisting(PLOGFILE LogFile)
|
||||||
pdwRecSize2 = (PDWORD)(((PBYTE)RecBuf)+dwRecSize-4);
|
pdwRecSize2 = (PDWORD)(((PBYTE)RecBuf)+dwRecSize-4);
|
||||||
if(*pdwRecSize2 != dwRecSize)
|
if(*pdwRecSize2 != dwRecSize)
|
||||||
{
|
{
|
||||||
DPRINT("EventLog: Invalid size2 of record %d (%x) in %s\n",
|
DPRINT1("Invalid size2 of record %d (%x) in %s\n",
|
||||||
dwRecordsNumber,
|
dwRecordsNumber,
|
||||||
*pdwRecSize2,
|
*pdwRecSize2,
|
||||||
LogFile->LogName);
|
LogFile->LogName);
|
||||||
|
@ -158,6 +218,7 @@ BOOL LogfInitializeExisting(PLOGFILE LogFile)
|
||||||
|
|
||||||
if(!LogfAddOffsetInformation(LogFile, RecBuf->RecordNumber, dwFilePointer))
|
if(!LogfAddOffsetInformation(LogFile, RecBuf->RecordNumber, dwFilePointer))
|
||||||
{
|
{
|
||||||
|
DPRINT1("LogfAddOffsetInformation() failed!\n");
|
||||||
HeapFree(MyHeap, 0, RecBuf);
|
HeapFree(MyHeap, 0, RecBuf);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -168,13 +229,28 @@ BOOL LogfInitializeExisting(PLOGFILE LogFile)
|
||||||
LogFile->Header.NextRecord = dwRecordsNumber+1;
|
LogFile->Header.NextRecord = dwRecordsNumber+1;
|
||||||
LogFile->Header.OldestRecord = dwRecordsNumber ? 1 : 0; //FIXME
|
LogFile->Header.OldestRecord = dwRecordsNumber ? 1 : 0; //FIXME
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, 0, 0, FILE_CURRENT);
|
if(!SetFilePointer(LogFile->hFile, 0, NULL, FILE_CURRENT) ==
|
||||||
WriteFile(LogFile->hFile,
|
INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!WriteFile(LogFile->hFile,
|
||||||
&LogFile->Header,
|
&LogFile->Header,
|
||||||
sizeof(FILE_HEADER),
|
sizeof(FILE_HEADER),
|
||||||
&dwRead,
|
&dwRead,
|
||||||
NULL);
|
NULL))
|
||||||
FlushFileBuffers(LogFile->hFile);
|
{
|
||||||
|
DPRINT1("WriteFile failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!FlushFileBuffers(LogFile->hFile))
|
||||||
|
{
|
||||||
|
DPRINT1("FlushFileBuffers failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -190,7 +266,7 @@ PLOGFILE LogfCreate(WCHAR *LogName,
|
||||||
sizeof(LOGFILE));
|
sizeof(LOGFILE));
|
||||||
if(!LogFile)
|
if(!LogFile)
|
||||||
{
|
{
|
||||||
DbgPrint("EventLog: Can't allocate heap\n");
|
DPRINT1("Can't allocate heap!\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,51 +281,43 @@ PLOGFILE LogfCreate(WCHAR *LogName,
|
||||||
|
|
||||||
if(LogFile->hFile == INVALID_HANDLE_VALUE)
|
if(LogFile->hFile == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
DPRINT("Can't create file %S.\n", FileName);
|
DPRINT1("Can't create file %S.\n", FileName);
|
||||||
HeapFree(MyHeap, 0, LogFile);
|
HeapFree(MyHeap, 0, LogFile);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bCreateNew = GetLastError() == ERROR_ALREADY_EXISTS ? FALSE : TRUE;
|
bCreateNew = (GetLastError() == ERROR_ALREADY_EXISTS) ? FALSE : TRUE;
|
||||||
|
|
||||||
LogFile->LogName = HeapAlloc(MyHeap,
|
LogFile->LogName = HeapAlloc(MyHeap,
|
||||||
HEAP_ZERO_MEMORY,
|
HEAP_ZERO_MEMORY,
|
||||||
(lstrlenW(LogName)+1)*sizeof(WCHAR));
|
(lstrlenW(LogName)+1)*sizeof(WCHAR));
|
||||||
if(LogFile->LogName)
|
|
||||||
lstrcpyW(LogFile->LogName, LogName);
|
if(LogFile->LogName) lstrcpyW(LogFile->LogName, LogName);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DPRINT("EventLog: Can't allocate heap\n");
|
DPRINT1("Can't allocate heap\n");
|
||||||
HeapFree(MyHeap, 0, LogFile);
|
HeapFree(MyHeap, 0, LogFile);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LogFile->FileName = HeapAlloc(MyHeap,
|
LogFile->FileName = HeapAlloc(MyHeap,
|
||||||
HEAP_ZERO_MEMORY,
|
HEAP_ZERO_MEMORY,
|
||||||
(lstrlenW(FileName)+1)*sizeof(WCHAR));
|
(lstrlenW(FileName)+1)*sizeof(WCHAR));
|
||||||
if(LogFile->FileName)
|
|
||||||
lstrcpyW(LogFile->FileName, FileName);
|
if(LogFile->FileName) lstrcpyW(LogFile->FileName, FileName);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DPRINT("EventLog: Can't allocate heap\n");
|
DPRINT1("Can't allocate heap\n");
|
||||||
HeapFree(MyHeap, 0, LogFile->LogName);
|
goto fail;
|
||||||
HeapFree(MyHeap, 0, LogFile);
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LogFile->OffsetInfo = (PEVENT_OFFSET_INFO)
|
LogFile->OffsetInfo = (PEVENT_OFFSET_INFO)
|
||||||
HeapAlloc(MyHeap,
|
HeapAlloc(MyHeap, HEAP_ZERO_MEMORY, sizeof(EVENT_OFFSET_INFO)*64);
|
||||||
HEAP_ZERO_MEMORY,
|
|
||||||
sizeof(EVENT_OFFSET_INFO)*64);
|
|
||||||
|
|
||||||
if(!LogFile->OffsetInfo)
|
if(!LogFile->OffsetInfo)
|
||||||
{
|
{
|
||||||
DPRINT("EventLog: Can't allocate heap\n");
|
DPRINT1("Can't allocate heap\n");
|
||||||
HeapFree(MyHeap, 0, LogFile->FileName);
|
goto fail;
|
||||||
HeapFree(MyHeap, 0, LogFile->LogName);
|
|
||||||
HeapFree(MyHeap, 0, LogFile);
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LogFile->OffsetInfoSize = 64;
|
LogFile->OffsetInfoSize = 64;
|
||||||
|
@ -258,18 +326,21 @@ PLOGFILE LogfCreate(WCHAR *LogName,
|
||||||
bResult = LogfInitializeNew(LogFile);
|
bResult = LogfInitializeNew(LogFile);
|
||||||
else bResult = LogfInitializeExisting(LogFile);
|
else bResult = LogfInitializeExisting(LogFile);
|
||||||
|
|
||||||
if(!bResult)
|
if(!bResult) goto fail;
|
||||||
{
|
|
||||||
HeapFree(MyHeap, 0, LogFile->OffsetInfo);
|
|
||||||
HeapFree(MyHeap, 0, LogFile->FileName);
|
|
||||||
HeapFree(MyHeap, 0, LogFile->LogName);
|
|
||||||
HeapFree(MyHeap, 0, LogFile);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
InitializeCriticalSection(&LogFile->cs);
|
InitializeCriticalSection(&LogFile->cs);
|
||||||
LogfListAddItem(LogFile);
|
LogfListAddItem(LogFile);
|
||||||
return LogFile;
|
return LogFile;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
if(LogFile)
|
||||||
|
{
|
||||||
|
if(LogFile->OffsetInfo) HeapFree(MyHeap, 0, LogFile->OffsetInfo);
|
||||||
|
if(LogFile->FileName) HeapFree(MyHeap, 0, LogFile->FileName);
|
||||||
|
if(LogFile->LogName) HeapFree(MyHeap, 0, LogFile->LogName);
|
||||||
|
HeapFree(MyHeap, 0, LogFile);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID LogfClose(PLOGFILE LogFile)
|
VOID LogfClose(PLOGFILE LogFile)
|
||||||
|
@ -445,8 +516,21 @@ BOOL LogfReadEvent(PLOGFILE LogFile,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, dwOffset, NULL, FILE_BEGIN);
|
if(SetFilePointer(LogFile->hFile, dwOffset, NULL, FILE_BEGIN)
|
||||||
ReadFile(LogFile->hFile, &dwRecSize, sizeof(DWORD), &dwRead, NULL);
|
== INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ReadFile(LogFile->hFile, &dwRecSize, sizeof(DWORD), &dwRead, NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwRecSize > BufSize)
|
if(dwRecSize > BufSize)
|
||||||
{
|
{
|
||||||
*BytesRead = 0;
|
*BytesRead = 0;
|
||||||
|
@ -456,12 +540,23 @@ BOOL LogfReadEvent(PLOGFILE LogFile,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile,
|
if(SetFilePointer(LogFile->hFile,
|
||||||
-((LONG)sizeof(DWORD)),
|
-((LONG)sizeof(DWORD)),
|
||||||
NULL,
|
NULL,
|
||||||
FILE_CURRENT);
|
FILE_CURRENT) == INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ReadFile(LogFile->hFile, Buffer, dwRecSize, &dwRead, NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
ReadFile(LogFile->hFile, Buffer, dwRecSize, &dwRead, NULL);
|
|
||||||
dwBufferUsage+=dwRead;
|
dwBufferUsage+=dwRead;
|
||||||
|
|
||||||
while(dwBufferUsage<BufSize)
|
while(dwBufferUsage<BufSize)
|
||||||
|
@ -473,20 +568,43 @@ BOOL LogfReadEvent(PLOGFILE LogFile,
|
||||||
dwOffset = LogfOffsetByNumber(LogFile, dwRecNum);
|
dwOffset = LogfOffsetByNumber(LogFile, dwRecNum);
|
||||||
if(!dwOffset) break;
|
if(!dwOffset) break;
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, dwOffset, NULL, FILE_BEGIN);
|
if(SetFilePointer(LogFile->hFile, dwOffset, NULL, FILE_BEGIN)
|
||||||
ReadFile(LogFile->hFile, &dwRecSize, sizeof(DWORD), &dwRead, NULL);
|
== INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ReadFile(LogFile->hFile, &dwRecSize, sizeof(DWORD), &dwRead, NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwBufferUsage+dwRecSize>BufSize)break;
|
if(dwBufferUsage+dwRecSize>BufSize)break;
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile,
|
if(SetFilePointer(LogFile->hFile,
|
||||||
-((LONG)sizeof(DWORD)),
|
-((LONG)sizeof(DWORD)),
|
||||||
NULL,
|
NULL,
|
||||||
FILE_CURRENT);
|
FILE_CURRENT) == INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
ReadFile(LogFile->hFile,
|
if(!ReadFile(LogFile->hFile,
|
||||||
Buffer+dwBufferUsage,
|
Buffer+dwBufferUsage,
|
||||||
dwRecSize,
|
dwRecSize,
|
||||||
&dwRead,
|
&dwRead,
|
||||||
NULL);
|
NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("ReadFile() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
dwBufferUsage+=dwRead;
|
dwBufferUsage+=dwRead;
|
||||||
}
|
}
|
||||||
|
@ -503,7 +621,6 @@ BOOL LogfWriteData(PLOGFILE LogFile,
|
||||||
DWORD dwWritten;
|
DWORD dwWritten;
|
||||||
SYSTEMTIME st;
|
SYSTEMTIME st;
|
||||||
EOF_RECORD EofRec;
|
EOF_RECORD EofRec;
|
||||||
BOOL bResult;
|
|
||||||
|
|
||||||
if(!Buffer)
|
if(!Buffer)
|
||||||
{
|
{
|
||||||
|
@ -515,11 +632,18 @@ BOOL LogfWriteData(PLOGFILE LogFile,
|
||||||
|
|
||||||
EnterCriticalSection(&LogFile->cs);
|
EnterCriticalSection(&LogFile->cs);
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, LogFile->Header.EofOffset, NULL, FILE_BEGIN);
|
if(SetFilePointer(LogFile->hFile,
|
||||||
WriteFile(LogFile->hFile, Buffer, BufSize, &dwWritten, NULL);
|
LogFile->Header.EofOffset,
|
||||||
|
NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
|
||||||
if(BufSize != dwWritten)
|
|
||||||
{
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!WriteFile(LogFile->hFile, Buffer, BufSize, &dwWritten, NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("WriteFile() failed! %d\n", GetLastError());
|
||||||
LeaveCriticalSection(&LogFile->cs);
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -549,24 +673,41 @@ BOOL LogfWriteData(PLOGFILE LogFile,
|
||||||
EofRec.StartOffset = LogFile->Header.FirstRecordOffset;
|
EofRec.StartOffset = LogFile->Header.FirstRecordOffset;
|
||||||
EofRec.EndOffset = LogFile->Header.EofOffset;
|
EofRec.EndOffset = LogFile->Header.EofOffset;
|
||||||
|
|
||||||
WriteFile(LogFile->hFile, &EofRec, sizeof(EOF_RECORD), &dwWritten, NULL);
|
if(!WriteFile(LogFile->hFile,
|
||||||
|
&EofRec,
|
||||||
|
sizeof(EOF_RECORD),
|
||||||
|
&dwWritten, NULL))
|
||||||
|
{
|
||||||
|
DPRINT1("WriteFile() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN);
|
if(SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN)
|
||||||
bResult = WriteFile(LogFile->hFile,
|
== INVALID_SET_FILE_POINTER)
|
||||||
|
{
|
||||||
|
DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!WriteFile(LogFile->hFile,
|
||||||
&LogFile->Header,
|
&LogFile->Header,
|
||||||
sizeof(FILE_HEADER),
|
sizeof(FILE_HEADER),
|
||||||
&dwWritten,
|
&dwWritten,
|
||||||
NULL);
|
NULL))
|
||||||
|
|
||||||
if(!bResult)
|
|
||||||
{
|
{
|
||||||
DPRINT("WriteFile failed! LastError = %d\n", GetLastError());
|
DPRINT1("WriteFile failed! LastError = %d\n", GetLastError());
|
||||||
LeaveCriticalSection(&LogFile->cs);
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!FlushFileBuffers(LogFile->hFile))
|
if(!FlushFileBuffers(LogFile->hFile))
|
||||||
DPRINT("FlushFileBuffers() failed!\n");
|
{
|
||||||
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
|
DPRINT1("FlushFileBuffers() failed! %d\n", GetLastError());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
LeaveCriticalSection(&LogFile->cs);
|
LeaveCriticalSection(&LogFile->cs);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -603,7 +744,7 @@ BOOL LogfAddOffsetInformation(PLOGFILE LogFile,
|
||||||
sizeof(EVENT_OFFSET_INFO));
|
sizeof(EVENT_OFFSET_INFO));
|
||||||
if(!NewOffsetInfo)
|
if(!NewOffsetInfo)
|
||||||
{
|
{
|
||||||
DbgPrint("EventLog: Can't reallocate heap.\n");
|
DPRINT1("Can't reallocate heap.\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue