/*
- * PROJECT: ReactOS kernel
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/eventlog/eventlog.c
- * PURPOSE: Event logging service
- * COPYRIGHT: Copyright 2002 Eric Kohl
- * Copyright 2005 Saveliy Tretiakov
- * Hermes Belusca-Maito
+ * PROJECT: ReactOS EventLog Service
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/services/eventlog/eventlog.c
+ * PURPOSE: Event logging service
+ * COPYRIGHT: Copyright 2002 Eric Kohl
+ * Copyright 2005 Saveliy Tretiakov
+ * Hermes Belusca-Maito
*/
/* INCLUDES *****************************************************************/
#include "eventlog.h"
-
#include <stdio.h>
#include <netevent.h>
cchRemain++;
/* Read 'CurrentType' from the registry and write it into the buffer */
- lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
- 0,
- KEY_QUERY_VALUE,
- &hKey);
+ lResult = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
+ 0,
+ KEY_QUERY_VALUE,
+ &hKey);
if (lResult == ERROR_SUCCESS)
{
dwValueLength = cchRemain;
- lResult = RegQueryValueEx(hKey,
- L"CurrentType",
- NULL,
- &dwType,
- (LPBYTE)str,
- &dwValueLength);
+ lResult = RegQueryValueExW(hKey,
+ L"CurrentType",
+ NULL,
+ &dwType,
+ (LPBYTE)str,
+ &dwValueLength);
RegCloseKey(hKey);
}
ULONG ulMaxSize, ulRetention;
NTSTATUS Status;
- DPRINT("LoadLogFile: %S\n", LogName);
+ DPRINT("LoadLogFile: `%S'\n", LogName);
Result = RegQueryInfoKeyW(hKey, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, &MaxValueLen, NULL, NULL);
ValueLen);
if (Result != ERROR_SUCCESS)
{
- DPRINT1("RegSetValueEx failed: %lu\n", Result);
+ DPRINT1("RegSetValueExW failed: %lu\n", Result);
HeapFree(GetProcessHeap(), 0, Buf);
return NULL;
}
{
LONG Result;
DWORD MaxLognameLen, LognameLen;
- PWSTR Buf = NULL;
DWORD dwIndex;
+ PWSTR Buf = NULL;
PLOGFILE pLogFile;
Result = RegQueryInfoKeyW(eventlogKey, NULL, NULL, NULL, NULL, &MaxLognameLen,
DPRINT("%S\n", Buf);
- Result = RegOpenKeyEx(eventlogKey, Buf, 0, KEY_ALL_ACCESS, &SubKey);
+ Result = RegOpenKeyExW(eventlogKey, Buf, 0, KEY_ALL_ACCESS, &SubKey);
if (Result != ERROR_SUCCESS)
{
DPRINT1("Failed to open %S key.\n", Buf);
int wmain(int argc, WCHAR* argv[])
{
- WCHAR LogPath[MAX_PATH];
INT RetCode = 0;
LONG Result;
HKEY elogKey;
+ WCHAR LogPath[MAX_PATH];
LogfListInitialize();
InitEventSourceList();
- GetWindowsDirectoryW(LogPath, MAX_PATH);
+ GetSystemWindowsDirectoryW(LogPath, ARRAYSIZE(LogPath));
if (GetDriveTypeW(LogPath) == DRIVE_CDROM)
{
}
else
{
- Result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- L"SYSTEM\\CurrentControlSet\\Services\\EventLog",
- 0,
- KEY_ALL_ACCESS,
- &elogKey);
-
+ Result = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ L"SYSTEM\\CurrentControlSet\\Services\\EventLog",
+ 0,
+ KEY_ALL_ACCESS,
+ &elogKey);
if (Result != ERROR_SUCCESS)
{
DPRINT1("Fatal error: cannot open eventlog registry key.\n");
EventLogSource = GetEventSourceByName(L"EventLog");
if (!EventLogSource)
{
- DPRINT1("No EventLog source available, the EventLog service will not be able to log its own events.\n");
+ DPRINT1("The 'EventLog' source is unavailable. The EventLog service will not be able to log its own events.\n");
}
StartServiceCtrlDispatcher(ServiceTable);
/*
- * PROJECT: ReactOS kernel
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/eventlog/file.c
- * PURPOSE: Event logging service
- * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
- * Michael Martin
- * Hermes Belusca-Maito
+ * PROJECT: ReactOS EventLog Service
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/services/eventlog/file.c
+ * PURPOSE: Event log file support wrappers
+ * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
+ * Michael Martin
+ * Hermes Belusca-Maito
*/
/* INCLUDES ******************************************************************/
#include "eventlog.h"
-
#include <ndk/iofuncs.h>
#include <ndk/kefuncs.h>
}
if (LogName)
- StringCchCopy(pLogFile->LogName, LogNameLen, LogName);
+ StringCchCopyW(pLogFile->LogName, LogNameLen, LogName);
pLogFile->FileName = RtlAllocateHeap(GetProcessHeap(),
HEAP_ZERO_MEMORY,
goto Quit;
}
- StringCchCopy(pLogFile->FileName,
- /*wcslen(FileName->Buffer) + 1*/ (FileName->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR),
- FileName->Buffer);
+ StringCchCopyW(pLogFile->FileName,
+ /*wcslen(FileName->Buffer) + 1*/ (FileName->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR),
+ FileName->Buffer);
pLogFile->OffsetInfo = RtlAllocateHeap(GetProcessHeap(),
HEAP_ZERO_MEMORY,
PEVENTLOGRECORD
-LogfAllocAndBuildNewRecord(PULONG lpRecSize,
- ULONG Time,
- USHORT wType,
- USHORT wCategory,
- ULONG dwEventId,
- PCWSTR SourceName,
- PCWSTR ComputerName,
- ULONG dwSidLength,
- PSID lpUserSid,
- USHORT wNumStrings,
- PWSTR lpStrings,
- ULONG dwDataSize,
- PVOID lpRawData)
+LogfAllocAndBuildNewRecord(PSIZE_T pRecSize,
+ ULONG Time,
+ USHORT wType,
+ USHORT wCategory,
+ ULONG dwEventId,
+ PCWSTR SourceName,
+ PCWSTR ComputerName,
+ ULONG dwSidLength,
+ PSID pUserSid,
+ USHORT wNumStrings,
+ PWSTR pStrings,
+ ULONG dwDataSize,
+ PVOID pRawData)
{
- DWORD dwRecSize;
+ SIZE_T RecSize;
+ PBYTE Buffer;
PEVENTLOGRECORD pRec;
PWSTR str;
UINT i, pos;
SIZE_T SourceNameLen, ComputerNameLen, StringLen;
- PBYTE Buffer;
SourceNameLen = (SourceName ? wcslen(SourceName) : 0) + 1;
ComputerNameLen = (ComputerName ? wcslen(ComputerName) : 0) + 1;
- dwRecSize = sizeof(EVENTLOGRECORD) + (SourceNameLen + ComputerNameLen) * sizeof(WCHAR);
+ RecSize = sizeof(EVENTLOGRECORD) + (SourceNameLen + ComputerNameLen) * sizeof(WCHAR);
/* Align on DWORD boundary for the SID */
- dwRecSize = ROUND_UP(dwRecSize, sizeof(ULONG));
+ RecSize = ROUND_UP(RecSize, sizeof(ULONG));
- dwRecSize += dwSidLength;
+ RecSize += dwSidLength;
/* Add the sizes for the strings array */
- ASSERT((lpStrings == NULL && wNumStrings == 0) ||
- (lpStrings != NULL && wNumStrings >= 0));
- for (i = 0, str = lpStrings; i < wNumStrings; i++)
+ ASSERT((pStrings == NULL && wNumStrings == 0) ||
+ (pStrings != NULL && wNumStrings >= 0));
+ for (i = 0, str = pStrings; i < wNumStrings; i++)
{
StringLen = wcslen(str) + 1; // str must be != NULL
- dwRecSize += StringLen * sizeof(WCHAR);
+ RecSize += StringLen * sizeof(WCHAR);
str += StringLen;
}
/* Add the data size */
- dwRecSize += dwDataSize;
+ RecSize += dwDataSize;
/* Align on DWORD boundary for the full structure */
- dwRecSize = ROUND_UP(dwRecSize, sizeof(ULONG));
+ RecSize = ROUND_UP(RecSize, sizeof(ULONG));
/* Size of the trailing 'Length' member */
- dwRecSize += sizeof(ULONG);
+ RecSize += sizeof(ULONG);
- Buffer = RtlAllocateHeap(GetProcessHeap(), HEAP_ZERO_MEMORY, dwRecSize);
+ Buffer = RtlAllocateHeap(GetProcessHeap(), HEAP_ZERO_MEMORY, RecSize);
if (!Buffer)
{
DPRINT1("Cannot allocate heap!\n");
}
pRec = (PEVENTLOGRECORD)Buffer;
- pRec->Length = dwRecSize;
+ pRec->Length = RecSize;
pRec->Reserved = LOGFILE_SIGNATURE;
/*
pos = sizeof(EVENTLOGRECORD);
if (SourceName)
- StringCchCopy((PWSTR)(Buffer + pos), SourceNameLen, SourceName);
+ StringCchCopyW((PWSTR)(Buffer + pos), SourceNameLen, SourceName);
pos += SourceNameLen * sizeof(WCHAR);
if (ComputerName)
- StringCchCopy((PWSTR)(Buffer + pos), ComputerNameLen, ComputerName);
+ StringCchCopyW((PWSTR)(Buffer + pos), ComputerNameLen, ComputerName);
pos += ComputerNameLen * sizeof(WCHAR);
/* Align on DWORD boundary for the SID */
pRec->UserSidOffset = 0;
if (dwSidLength)
{
- RtlCopyMemory(Buffer + pos, lpUserSid, dwSidLength);
+ RtlCopyMemory(Buffer + pos, pUserSid, dwSidLength);
pRec->UserSidLength = dwSidLength;
pRec->UserSidOffset = pos;
pos += dwSidLength;
}
pRec->StringOffset = pos;
- for (i = 0, str = lpStrings; i < wNumStrings; i++)
+ for (i = 0, str = pStrings; i < wNumStrings; i++)
{
StringLen = wcslen(str) + 1; // str must be != NULL
- StringCchCopy((PWSTR)(Buffer + pos), StringLen, str);
+ StringCchCopyW((PWSTR)(Buffer + pos), StringLen, str);
str += StringLen;
pos += StringLen * sizeof(WCHAR);
}
pRec->DataOffset = 0;
if (dwDataSize)
{
- RtlCopyMemory(Buffer + pos, lpRawData, dwDataSize);
+ RtlCopyMemory(Buffer + pos, pRawData, dwDataSize);
pRec->DataLength = dwDataSize;
pRec->DataOffset = pos;
pos += dwDataSize;
pos = ROUND_UP(pos, sizeof(ULONG));
/* Initialize the trailing 'Length' member */
- *((PDWORD) (Buffer + pos)) = dwRecSize;
+ *((PDWORD)(Buffer + pos)) = RecSize;
- *lpRecSize = dwRecSize;
+ *pRecSize = RecSize;
return pRec;
}
USHORT wCategory,
ULONG dwEventId,
USHORT wNumStrings,
- PWSTR lpStrings,
+ PWSTR pStrings,
ULONG dwDataSize,
- PVOID lpRawData)
+ PVOID pRawData)
{
NTSTATUS Status;
WCHAR szComputerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD dwComputerNameLength = MAX_COMPUTERNAME_LENGTH + 1;
- PEVENTLOGRECORD logBuffer;
+ PEVENTLOGRECORD LogBuffer;
LARGE_INTEGER SystemTime;
ULONG Time;
- DWORD recSize;
+ SIZE_T RecSize;
if (!EventLogSource)
return;
NtQuerySystemTime(&SystemTime);
RtlTimeToSecondsSince1970(&SystemTime, &Time);
- logBuffer = LogfAllocAndBuildNewRecord(&recSize,
+ LogBuffer = LogfAllocAndBuildNewRecord(&RecSize,
Time,
wType,
wCategory,
0,
NULL,
wNumStrings,
- lpStrings,
+ pStrings,
dwDataSize,
- lpRawData);
+ pRawData);
- Status = LogfWriteRecord(EventLogSource->LogFile, recSize, logBuffer);
+ Status = LogfWriteRecord(EventLogSource->LogFile, RecSize, LogBuffer);
if (!NT_SUCCESS(Status))
{
- DPRINT1("ERROR WRITING TO EventLog %S (Status 0x%08lx)\n",
- EventLogSource->LogFile->FileName, Status);
+ DPRINT1("ERROR writing to event log `%S' (Status 0x%08lx)\n",
+ EventLogSource->LogFile->LogName, Status);
}
- LogfFreeRecord(logBuffer);
+ LogfFreeRecord(LogBuffer);
}
/*
- * PROJECT: ReactOS kernel
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/services/eventlog/rpc.c
- * PURPOSE: Event logging service
- * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
- * Copyright 2008 Michael Martin
- * Copyright 2010-2011 Eric Kohl
+ * PROJECT: ReactOS EventLog Service
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: base/services/eventlog/rpc.c
+ * PURPOSE: RPC Port Interface support
+ * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
+ * Copyright 2008 Michael Martin
+ * Copyright 2010-2011 Eric Kohl
*/
/* INCLUDES *****************************************************************/
BOOLEAN Create)
{
NTSTATUS Status = STATUS_SUCCESS;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
PLOGFILE currentLogFile = NULL;
DWORD i, LogsActive;
PEVENTSOURCE pEventSource;
- DPRINT("ElfCreateEventLogHandle(Name: %wZ)\n", LogName);
+ DPRINT("ElfCreateEventLogHandle(%wZ)\n", LogName);
*LogHandle = NULL;
i = (LogName->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR);
- lpLogHandle = HeapAlloc(GetProcessHeap(),
- HEAP_ZERO_MEMORY,
- FIELD_OFFSET(LOGHANDLE, szName[i]));
- if (!lpLogHandle)
+ pLogHandle = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ FIELD_OFFSET(LOGHANDLE, szName[i]));
+ if (!pLogHandle)
{
DPRINT1("Failed to allocate Heap!\n");
return STATUS_NO_MEMORY;
}
- StringCchCopy(lpLogHandle->szName, i, LogName->Buffer);
+ StringCchCopyW(pLogHandle->szName, i, LogName->Buffer);
/* Get the number of Log Files the EventLog service found */
// NOTE: We could just as well loop only once within the list of logs
if (pEventSource)
{
DPRINT("EventSource LogFile: %p\n", pEventSource->LogFile);
- lpLogHandle->LogFile = pEventSource->LogFile;
+ pLogHandle->LogFile = pEventSource->LogFile;
}
else
{
DPRINT("EventSource LogFile: Application log file\n");
- lpLogHandle->LogFile = LogfListItemByName(L"Application");
+ pLogHandle->LogFile = LogfListItemByName(L"Application");
}
- DPRINT("LogHandle LogFile: %p\n", lpLogHandle->LogFile);
+ DPRINT("LogHandle LogFile: %p\n", pLogHandle->LogFile);
}
else
{
- lpLogHandle->LogFile = NULL;
+ pLogHandle->LogFile = NULL;
for (i = 1; i <= LogsActive; i++)
{
if (_wcsicmp(LogName->Buffer, currentLogFile->LogName) == 0)
{
- lpLogHandle->LogFile = currentLogFile;
+ pLogHandle->LogFile = currentLogFile;
break;
}
}
/* Use the application log if the desired log does not exist */
- if (lpLogHandle->LogFile == NULL)
+ if (pLogHandle->LogFile == NULL)
{
- lpLogHandle->LogFile = LogfListItemByName(L"Application");
- if (lpLogHandle->LogFile == NULL)
+ pLogHandle->LogFile = LogfListItemByName(L"Application");
+ if (pLogHandle->LogFile == NULL)
{
DPRINT1("Application log is missing!\n");
Status = STATUS_UNSUCCESSFUL;
}
/* Reset the current record */
- lpLogHandle->CurrentRecord = 0;
+ pLogHandle->CurrentRecord = 0;
}
- if (!lpLogHandle->LogFile)
+ if (!pLogHandle->LogFile)
Status = STATUS_UNSUCCESSFUL;
Done:
if (NT_SUCCESS(Status))
{
/* Append log handle */
- InsertTailList(&LogHandleListHead, &lpLogHandle->LogHandleListEntry);
- *LogHandle = lpLogHandle;
+ InsertTailList(&LogHandleListHead, &pLogHandle->LogHandleListEntry);
+ *LogHandle = pLogHandle;
}
else
{
- HeapFree(GetProcessHeap(), 0, lpLogHandle);
+ HeapFree(GetProcessHeap(), 0, pLogHandle);
}
return Status;
PUNICODE_STRING FileName)
{
NTSTATUS Status = STATUS_SUCCESS;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
- DPRINT("ElfCreateBackupLogHandle(FileName: %wZ)\n", FileName);
+ DPRINT("ElfCreateBackupLogHandle(%wZ)\n", FileName);
*LogHandle = NULL;
- lpLogHandle = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LOGHANDLE));
- if (lpLogHandle == NULL)
+ pLogHandle = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ sizeof(LOGHANDLE));
+ if (pLogHandle == NULL)
{
DPRINT1("Failed to allocate Heap!\n");
return STATUS_NO_MEMORY;
}
/* Create the log file */
- Status = LogfCreate(&lpLogHandle->LogFile,
+ Status = LogfCreate(&pLogHandle->LogFile,
NULL,
FileName,
0,
}
/* Set the backup flag */
- lpLogHandle->Flags |= LOG_HANDLE_BACKUP_FILE;
+ pLogHandle->Flags |= LOG_HANDLE_BACKUP_FILE;
/* Reset the current record */
- lpLogHandle->CurrentRecord = 0;
+ pLogHandle->CurrentRecord = 0;
Done:
if (NT_SUCCESS(Status))
{
/* Append log handle */
- InsertTailList(&LogHandleListHead, &lpLogHandle->LogHandleListEntry);
- *LogHandle = lpLogHandle;
+ InsertTailList(&LogHandleListHead, &pLogHandle->LogHandleListEntry);
+ *LogHandle = pLogHandle;
}
else
{
- HeapFree(GetProcessHeap(), 0, lpLogHandle);
+ HeapFree(GetProcessHeap(), 0, pLogHandle);
}
return Status;
ElfGetLogHandleEntryByHandle(IELF_HANDLE EventLogHandle)
{
PLIST_ENTRY CurrentEntry;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
CurrentEntry = LogHandleListHead.Flink;
while (CurrentEntry != &LogHandleListHead)
{
- lpLogHandle = CONTAINING_RECORD(CurrentEntry,
- LOGHANDLE,
- LogHandleListEntry);
+ pLogHandle = CONTAINING_RECORD(CurrentEntry,
+ LOGHANDLE,
+ LogHandleListEntry);
CurrentEntry = CurrentEntry->Flink;
- if (lpLogHandle == EventLogHandle)
- return lpLogHandle;
+ if (pLogHandle == EventLogHandle)
+ return pLogHandle;
}
return NULL;
static NTSTATUS
ElfDeleteEventLogHandle(PIELF_HANDLE LogHandle)
{
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
- lpLogHandle = ElfGetLogHandleEntryByHandle(*LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(*LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
- RemoveEntryList(&lpLogHandle->LogHandleListEntry);
- LogfClose(lpLogHandle->LogFile, FALSE);
+ RemoveEntryList(&pLogHandle->LogHandleListEntry);
+ LogfClose(pLogHandle->LogFile, FALSE);
- HeapFree(GetProcessHeap(), 0, lpLogHandle);
+ HeapFree(GetProcessHeap(), 0, pLogHandle);
*LogHandle = NULL;
IELF_HANDLE LogHandle,
PRPC_UNICODE_STRING BackupFileName)
{
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
DPRINT("ElfrClearELFW()\n");
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
/* Fail, if the log file is a backup file */
- if (lpLogHandle->Flags & LOG_HANDLE_BACKUP_FILE)
+ if (pLogHandle->Flags & LOG_HANDLE_BACKUP_FILE)
return STATUS_INVALID_HANDLE;
- return LogfClearFile(lpLogHandle->LogFile,
+ return LogfClearFile(pLogHandle->LogFile,
(PUNICODE_STRING)BackupFileName);
}
IELF_HANDLE LogHandle,
PRPC_UNICODE_STRING BackupFileName)
{
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
DPRINT("ElfrBackupELFW()\n");
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
- return LogfBackupFile(lpLogHandle->LogFile,
+ return LogfBackupFile(pLogHandle->LogFile,
(PUNICODE_STRING)BackupFileName);
}
IELF_HANDLE LogHandle,
PULONG NumberOfRecords)
{
- PLOGHANDLE lpLogHandle;
- PLOGFILE lpLogFile;
+ PLOGHANDLE pLogHandle;
+ PLOGFILE pLogFile;
DPRINT("ElfrNumberOfRecords()\n");
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
if (!NumberOfRecords)
return STATUS_INVALID_PARAMETER;
- lpLogFile = lpLogHandle->LogFile;
+ pLogFile = pLogHandle->LogFile;
DPRINT("Oldest: %lu Current: %lu\n",
- lpLogFile->Header.OldestRecordNumber,
- lpLogFile->Header.CurrentRecordNumber);
+ pLogFile->Header.OldestRecordNumber,
+ pLogFile->Header.CurrentRecordNumber);
- if (lpLogFile->Header.OldestRecordNumber == 0)
+ if (pLogFile->Header.OldestRecordNumber == 0)
{
/* OldestRecordNumber == 0 when the log is empty */
*NumberOfRecords = 0;
else
{
/* The log contains events */
- *NumberOfRecords = lpLogFile->Header.CurrentRecordNumber -
- lpLogFile->Header.OldestRecordNumber;
+ *NumberOfRecords = pLogFile->Header.CurrentRecordNumber -
+ pLogFile->Header.OldestRecordNumber;
}
return STATUS_SUCCESS;
IELF_HANDLE LogHandle,
PULONG OldestRecordNumber)
{
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
if (!OldestRecordNumber)
return STATUS_INVALID_PARAMETER;
- *OldestRecordNumber = lpLogHandle->LogFile->Header.OldestRecordNumber;
+ *OldestRecordNumber = pLogHandle->LogFile->Header.OldestRecordNumber;
return STATUS_SUCCESS;
}
PULONG MinNumberOfBytesNeeded)
{
NTSTATUS Status;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
ULONG RecordNumber;
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
if (!Buffer)
/* If sequential read, retrieve the CurrentRecord from this log handle */
if (ReadFlags & EVENTLOG_SEQUENTIAL_READ)
{
- RecordNumber = lpLogHandle->CurrentRecord;
+ RecordNumber = pLogHandle->CurrentRecord;
}
else // (ReadFlags & EVENTLOG_SEEK_READ)
{
RecordNumber = RecordOffset;
}
- Status = LogfReadEvents(lpLogHandle->LogFile,
+ Status = LogfReadEvents(pLogHandle->LogFile,
ReadFlags,
&RecordNumber,
NumberOfBytesToRead,
/* Update the handle's CurrentRecord if success */
if (NT_SUCCESS(Status))
{
- lpLogHandle->CurrentRecord = RecordNumber;
+ pLogHandle->CurrentRecord = RecordNumber;
}
return Status;
PULONG TimeWritten)
{
NTSTATUS Status;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
PEVENTLOGRECORD LogBuffer;
USHORT i;
- ULONG recSize;
+ SIZE_T RecSize;
ULONG dwStringsSize = 0;
ULONG dwUserSidLength = 0;
PWSTR lpStrings, str;
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
/* Flags must be 0 */
if (UserSID)
dwUserSidLength = FIELD_OFFSET(SID, SubAuthority[UserSID->SubAuthorityCount]);
- LogBuffer = LogfAllocAndBuildNewRecord(&recSize,
+ LogBuffer = LogfAllocAndBuildNewRecord(&RecSize,
Time,
EventType,
EventCategory,
EventID,
(SourceName && SourceName->Buffer)
? SourceName->Buffer
- : lpLogHandle->szName,
+ : pLogHandle->szName,
ComputerName->Buffer,
dwUserSidLength,
UserSID,
DataSize,
Data);
- Status = LogfWriteRecord(lpLogHandle->LogFile, recSize, LogBuffer);
+ Status = LogfWriteRecord(pLogHandle->LogFile, RecSize, LogBuffer);
if (!NT_SUCCESS(Status))
{
- DPRINT1("ERROR WRITING TO EventLog %S (Status 0x%08lx)\n",
- lpLogHandle->LogFile->FileName, Status);
+ DPRINT1("ERROR writing to event log `%S' (Status 0x%08lx)\n",
+ pLogHandle->LogFile->LogName, Status);
}
if (NT_SUCCESS(Status))
IELF_HANDLE LogHandle,
PRPC_STRING BackupFileName)
{
- UNICODE_STRING BackupFileNameW;
NTSTATUS Status;
+ UNICODE_STRING BackupFileNameW;
Status = RtlAnsiStringToUnicodeString(&BackupFileNameW,
(PANSI_STRING)BackupFileName,
IELF_HANDLE LogHandle,
PRPC_STRING BackupFileName)
{
- UNICODE_STRING BackupFileNameW;
NTSTATUS Status;
+ UNICODE_STRING BackupFileNameW;
Status = RtlAnsiStringToUnicodeString(&BackupFileNameW,
(PANSI_STRING)BackupFileName,
ULONG MinorVersion,
PIELF_HANDLE LogHandle)
{
- UNICODE_STRING ModuleNameW;
NTSTATUS Status;
+ UNICODE_STRING ModuleNameW;
if ((MajorVersion != 1) || (MinorVersion != 1))
return STATUS_INVALID_PARAMETER;
ULONG MinorVersion,
PIELF_HANDLE LogHandle)
{
- UNICODE_STRING ModuleNameW;
NTSTATUS Status;
+ UNICODE_STRING ModuleNameW;
Status = RtlAnsiStringToUnicodeString(&ModuleNameW,
(PANSI_STRING)ModuleName,
ULONG MinorVersion,
PIELF_HANDLE LogHandle)
{
- UNICODE_STRING BackupFileNameW;
NTSTATUS Status;
+ UNICODE_STRING BackupFileNameW;
DPRINT("ElfrOpenBELA(%Z)\n", BackupFileName);
PULONG MinNumberOfBytesNeeded)
{
NTSTATUS Status;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
ULONG RecordNumber;
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
if (!Buffer)
/* If sequential read, retrieve the CurrentRecord from this log handle */
if (ReadFlags & EVENTLOG_SEQUENTIAL_READ)
{
- RecordNumber = lpLogHandle->CurrentRecord;
+ RecordNumber = pLogHandle->CurrentRecord;
}
else // (ReadFlags & EVENTLOG_SEEK_READ)
{
RecordNumber = RecordOffset;
}
- Status = LogfReadEvents(lpLogHandle->LogFile,
+ Status = LogfReadEvents(pLogHandle->LogFile,
ReadFlags,
&RecordNumber,
NumberOfBytesToRead,
/* Update the handle's CurrentRecord if success */
if (NT_SUCCESS(Status))
{
- lpLogHandle->CurrentRecord = RecordNumber;
+ pLogHandle->CurrentRecord = RecordNumber;
}
return Status;
PULONG RecordNumber,
PULONG TimeWritten)
{
+ NTSTATUS Status = STATUS_SUCCESS;
UNICODE_STRING ComputerNameW;
PUNICODE_STRING *StringsArrayW = NULL;
- NTSTATUS Status = STATUS_SUCCESS;
USHORT i;
DPRINT("ElfrReportEventA(%hu)\n", NumStrings);
{
for (i = 0; i < NumStrings; i++)
{
- if (StringsArrayW[i] != NULL)
+ if ((StringsArrayW[i] != NULL) && (StringsArrayW[i]->Buffer))
{
- if (StringsArrayW[i]->Buffer)
- {
- RtlFreeUnicodeString(StringsArrayW[i]);
- HeapFree(GetProcessHeap(), 0, StringsArrayW[i]);
- }
+ RtlFreeUnicodeString(StringsArrayW[i]);
+ HeapFree(GetProcessHeap(), 0, StringsArrayW[i]);
}
}
PULONG pcbBytesNeeded)
{
NTSTATUS Status = STATUS_SUCCESS;
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
switch (InfoLevel)
ElfrFlushEL(
IELF_HANDLE LogHandle)
{
- PLOGHANDLE lpLogHandle;
+ PLOGHANDLE pLogHandle;
- lpLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
- if (!lpLogHandle)
+ pLogHandle = ElfGetLogHandleEntryByHandle(LogHandle);
+ if (!pLogHandle)
return STATUS_INVALID_HANDLE;
UNIMPLEMENTED;