2 * PROJECT: ReactOS kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: services/eventlog/eventlog.h
5 * PURPOSE: Event logging service
6 * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
10 #define __EVENTLOG_H__
13 #define WIN32_NO_STATUS
22 #include <pseh/pseh.h>
23 #include "eventlogrpc_s.h"
25 typedef struct _IO_ERROR_LPC
28 IO_ERROR_LOG_MESSAGE Message
;
29 } IO_ERROR_LPC
, *PIO_ERROR_LPC
;
35 * Our file format will be compatible with NT's
37 #define LOGFILE_SIGNATURE 0x654c664c
41 * Flags used in logfile header
43 #define LOGFILE_FLAG1 1
44 #define LOGFILE_FLAG2 2
45 #define LOGFILE_FLAG3 4
46 #define LOGFILE_FLAG4 8
54 DWORD FirstRecordOffset
;
62 } FILE_HEADER
, *PFILE_HEADER
;
67 DWORD Ones
; // Must be 0x11111111
68 DWORD Twos
; // Must be 0x22222222
69 DWORD Threes
; // Must be 0x33333333
70 DWORD Fours
; // Must be 0x44444444
73 DWORD NextRecordNumber
;
74 DWORD OldestRecordNumber
;
76 } EOF_RECORD
, *PEOF_RECORD
;
82 } EVENT_OFFSET_INFO
, *PEVENT_OFFSET_INFO
;
91 PEVENT_OFFSET_INFO OffsetInfo
;
101 } EVENTSOURCE
, *PEVENTSOURCE
;
104 VOID
LogfListInitialize(VOID
);
106 PLOGFILE
LogfListHead(VOID
);
108 INT
LogfListItemCount(VOID
);
110 PLOGFILE
LogfListItemByIndex(INT Index
);
112 PLOGFILE
LogfListItemByName(WCHAR
* Name
);
114 INT
LogfListItemIndexByName(WCHAR
* Name
);
116 VOID
LogfListAddItem(PLOGFILE Item
);
118 VOID
LogfListRemoveItem(PLOGFILE Item
);
120 BOOL
LogfReadEvent(PLOGFILE LogFile
,
126 DWORD
* BytesNeeded
);
128 BOOL
LogfWriteData(PLOGFILE LogFile
,
132 PLOGFILE
LogfCreate(WCHAR
* LogName
,
135 VOID
LogfClose(PLOGFILE LogFile
);
137 VOID
LogfCloseAll(VOID
);
139 BOOL
LogfInitializeNew(PLOGFILE LogFile
);
141 BOOL
LogfInitializeExisting(PLOGFILE LogFile
);
143 DWORD
LogfGetOldestRecord(PLOGFILE LogFile
);
145 ULONG
LogfOffsetByNumber(PLOGFILE LogFile
,
148 BOOL
LogfAddOffsetInformation(PLOGFILE LogFile
,
152 PBYTE
LogfAllocAndBuildNewRecord(LPDWORD lpRecSize
,
153 DWORD dwRecordNumber
,
158 LPCWSTR ComputerName
,
166 void __inline
LogfFreeRecord(LPVOID Rec
);
169 VOID
PRINT_HEADER(PFILE_HEADER header
);
171 VOID
PRINT_RECORD(PEVENTLOGRECORD pRec
);
173 VOID
EventTimeToSystemTime(DWORD EventTime
,
174 SYSTEMTIME
* SystemTime
);
176 VOID
SystemTimeToEventTime(SYSTEMTIME
* pSystemTime
,
180 NTSTATUS STDCALL
PortThreadRoutine(PVOID Param
);
182 NTSTATUS
InitLogPort(VOID
);
184 NTSTATUS
ProcessPortMessage(VOID
);
187 DWORD STDCALL
RpcThreadRoutine(LPVOID lpParameter
);
189 #endif /* __EVENTLOG_H__ */