LogfInitializeExisting: Do not try to write to a file that has been opened as a backup file. It has been opened read-only.
svn path=/trunk/; revision=61026
-LogfInitializeExisting(PLOGFILE LogFile)
+LogfInitializeExisting(PLOGFILE LogFile, BOOL Backup)
{
DWORD dwRead;
DWORD dwRecordsNumber = 0;
{
DWORD dwRead;
DWORD dwRecordsNumber = 0;
But for now limit EventLog size to just under 5K. */
LogFile->Header.MaxSize = 5000;
But for now limit EventLog size to just under 5K. */
LogFile->Header.MaxSize = 5000;
- if (SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN) ==
- INVALID_SET_FILE_POINTER)
- DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
- return STATUS_EVENTLOG_FILE_CORRUPT;
- }
+ if (SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN) ==
+ INVALID_SET_FILE_POINTER)
+ {
+ DPRINT1("SetFilePointer() failed! %d\n", GetLastError());
+ return STATUS_EVENTLOG_FILE_CORRUPT;
+ }
- if (!WriteFile(LogFile->hFile,
- &LogFile->Header,
- sizeof(EVENTLOGHEADER),
- &dwRead,
- NULL))
- {
- DPRINT1("WriteFile failed! %d\n", GetLastError());
- return STATUS_EVENTLOG_FILE_CORRUPT;
- }
+ if (!WriteFile(LogFile->hFile,
+ &LogFile->Header,
+ sizeof(EVENTLOGHEADER),
+ &dwRead,
+ NULL))
+ {
+ DPRINT1("WriteFile failed! %d\n", GetLastError());
+ return STATUS_EVENTLOG_FILE_CORRUPT;
+ }
- if (!FlushFileBuffers(LogFile->hFile))
- {
- DPRINT1("FlushFileBuffers failed! %d\n", GetLastError());
- return STATUS_EVENTLOG_FILE_CORRUPT;
+ if (!FlushFileBuffers(LogFile->hFile))
+ {
+ DPRINT1("FlushFileBuffers failed! %d\n", GetLastError());
+ return STATUS_EVENTLOG_FILE_CORRUPT;
+ }
if (bCreateNew)
Status = LogfInitializeNew(pLogFile);
else
if (bCreateNew)
Status = LogfInitializeNew(pLogFile);
else
- Status = LogfInitializeExisting(pLogFile);
+ Status = LogfInitializeExisting(pLogFile, Backup);
if (!NT_SUCCESS(Status))
goto fail;
if (!NT_SUCCESS(Status))
goto fail;