#define WIN32_NO_STATUS
#include <windows.h>
+#include <netevent.h>
#include <lpctypes.h>
#include <lpcfuncs.h>
#include <rtlfuncs.h>
#define ELF_LOGFILE_ARCHIVE_SET 8
/* FIXME: MSDN reads that the following two structs are in winnt.h. Are they? */
-typedef struct _EVENTLOGHEADER {
+typedef struct _EVENTLOGHEADER
+{
ULONG HeaderSize;
ULONG Signature;
ULONG MajorVersion;
ULONG EndHeaderSize;
} EVENTLOGHEADER, *PEVENTLOGHEADER;
-typedef struct _EVENTLOGEOF {
+typedef struct _EVENTLOGEOF
+{
ULONG RecordSizeBeginning;
ULONG Ones;
ULONG Twos;
ULONG RecordSizeEnd;
} EVENTLOGEOF, *PEVENTLOGEOF;
-typedef struct
+typedef struct _EVENT_OFFSET_INFO
{
ULONG EventNumber;
ULONG EventOffset;
} EVENT_OFFSET_INFO, *PEVENT_OFFSET_INFO;
-typedef struct
+typedef struct _LOGFILE
{
HANDLE hFile;
EVENTLOGHEADER Header;
LIST_ENTRY ListEntry;
} LOGFILE, *PLOGFILE;
-typedef struct
+typedef struct _EVENTSOURCE
{
+ LIST_ENTRY EventSourceListEntry;
PLOGFILE LogFile;
- WCHAR *Name;
+ WCHAR szName[1];
} EVENTSOURCE, *PEVENTSOURCE;
+typedef struct _LOGHANDLE
+{
+ LIST_ENTRY LogHandleListEntry;
+ PEVENTSOURCE EventSource;
+ PLOGFILE LogFile;
+ ULONG CurrentRecord;
+ WCHAR szName[1];
+} LOGHANDLE, *PLOGHANDLE;
+
/* file.c */
VOID LogfListInitialize(VOID);
VOID LogfListRemoveItem(PLOGFILE Item);
-BOOL LogfReadEvent(PLOGFILE LogFile,
+DWORD LogfReadEvent(PLOGFILE LogFile,
DWORD Flags,
- DWORD RecordNumber,
+ DWORD * RecordNumber,
DWORD BufSize,
PBYTE Buffer,
DWORD * BytesRead,
DWORD LogfGetOldestRecord(PLOGFILE LogFile);
+DWORD LogfGetCurrentRecord(PLOGFILE LogFile);
+
ULONG LogfOffsetByNumber(PLOGFILE LogFile,
DWORD RecordNumber);
ULONG ulNumber,
ULONG ulOffset);
+BOOL LogfDeleteOffsetInformation(PLOGFILE LogFile,
+ ULONG ulNumber);
+
PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
DWORD dwRecordNumber,
WORD wType,
DWORD dwDataSize,
LPVOID lpRawData);
+VOID
+LogfReportEvent(WORD wType,
+ WORD wCategory,
+ DWORD dwEventId);
+
/* eventlog.c */
extern HANDLE MyHeap;
VOID SystemTimeToEventTime(SYSTEMTIME * pSystemTime,
DWORD * pEventTime);
+/* eventsource.c */
+VOID InitEventSourceList(VOID);
+
+BOOL
+LoadEventSources(HKEY hKey,
+ PLOGFILE pLogFile);
+
+PEVENTSOURCE
+GetEventSourceByName(LPCWSTR Name);
+
+
/* logport.c */
NTSTATUS WINAPI PortThreadRoutine(PVOID Param);