2 * COPYRIGHT: See COPYING in the top level directory
5 * PURPOSE: Event logging service
6 * PROGRAMMER: Saveliy Tretiakov (saveliyt@mail.ru)
10 #define __EVENTLOG_H__
13 #define NTOS_MODE_USER
14 #include <ndk/ntndk.h>
16 #include "eventlogrpc_s.h"
18 typedef struct _IO_ERROR_LPC
21 IO_ERROR_LOG_MESSAGE Message
;
22 } IO_ERROR_LPC
, *PIO_ERROR_LPC
;
24 #define LOGHANDLE unsigned char*
25 #define PLOGHANDLE int*
31 * Our file format will be compatible with NT's
34 #define LOGFILE_SIGNATURE 0x654c664c
38 * Flags used in logfile header
40 #define LOGFILE_FLAG1 1
41 #define LOGFILE_FLAG2 2
42 #define LOGFILE_FLAG3 4
43 #define LOGFILE_FLAG4 8
50 DWORD FirstRecordOffset
;
58 } FILE_HEADER
, *PFILE_HEADER
;
62 DWORD Ones
; // Must be 0x11111111
63 DWORD Twos
; // Must be 0x22222222
64 DWORD Threes
; // Must be 0x33333333
65 DWORD Fours
; // Must be 0x44444444
68 DWORD NextRecordNumber
;
69 DWORD OldestRecordNumber
;
71 } EOF_RECORD
, *PEOF_RECORD
;
76 } EVENT_OFFSET_INFO
, *PEVENT_OFFSET_INFO
;
84 PEVENT_OFFSET_INFO OffsetInfo
;
93 PLOGFILE
LogfListHead();
95 INT
LogfListItemCount();
97 PLOGFILE
LogfListItemByIndex(INT Index
);
99 PLOGFILE
LogfListItemByName(WCHAR
*Name
);
101 VOID
LogfListAddItem(PLOGFILE Item
);
103 VOID
LogfListRemoveItem(PLOGFILE Item
);
105 BOOL
LogfReadEvent(PLOGFILE LogFile
,
113 BOOL
LogfWriteData(PLOGFILE LogFile
,
117 PLOGFILE
LogfCreate(WCHAR
*LogName
,
120 VOID
LogfClose(PLOGFILE LogFile
);
122 BOOL
LogfInitializeNew(PLOGFILE LogFile
);
124 BOOL
LogfInitializeExisting(PLOGFILE LogFile
);
126 DWORD
LogfGetOldestRecord(PLOGFILE LogFile
);
128 ULONG
LogfOffsetByNumber(PLOGFILE LogFile
,
131 BOOL
LogfAddOffsetInformation(PLOGFILE LogFile
,
135 DWORD
LogfBuildNewRecord(PBYTE Buffer
,
136 DWORD dwRecordNumber
,
141 LPCWSTR ComputerName
,
150 VOID
PRINT_HEADER(PFILE_HEADER header
);
152 VOID
PRINT_RECORD(PEVENTLOGRECORD pRec
);
154 VOID
EventTimeToSystemTime(DWORD EventTime
,
155 SYSTEMTIME
*SystemTime
);
157 VOID
SystemTimeToEventTime(SYSTEMTIME
*pSystemTime
,
161 NTSTATUS STDCALL
PortThreadRoutine(PVOID Param
);
163 NTSTATUS
InitLogPort(VOID
);
165 NTSTATUS
ProcessPortMessage(VOID
);
168 DWORD STDCALL
RpcThreadRoutine(LPVOID lpParameter
);
170 NTSTATUS
EventLogClearW(
171 handle_t BindingHandle
,
173 wchar_t *BackupName
);
175 NTSTATUS
EventLogBackupW(
176 handle_t BindingHandle
,
180 NTSTATUS
EventLogClose(
181 handle_t BindingHandle
,
184 NTSTATUS
EventLogUnregSrc(
185 handle_t BindingHandle
,
188 NTSTATUS
EventLogRecordsNumber(
189 handle_t BindingHandle
,
191 unsigned long *RecordsNumber
);
193 NTSTATUS
EventLogGetOldestRec(
194 handle_t BindingHandle
,
196 unsigned long *OldestRecNumber
);
198 NTSTATUS
Unknown6(handle_t BindingHandle
);
200 NTSTATUS
EventLogOpenW(
201 handle_t BindingHandle
,
205 unsigned long MajorVer
,
206 unsigned long MinorVer
,
209 NTSTATUS
EventLogRegSrcW(
210 handle_t BindingHandle
,
214 unsigned long MajorVer
,
215 unsigned long MinorVer
,
218 NTSTATUS
EventLogOpenBackupW(
219 handle_t BindingHandle
,
222 unsigned long MajorVer
,
223 unsigned long MinorVer
,
226 NTSTATUS
EventLogReadW(
227 handle_t BindingHandle
,
230 unsigned long Offset
,
231 unsigned long BufSize
,
232 unsigned char *Buffer
,
233 unsigned long *BytesRead
,
234 unsigned long *BytesNeeded
);
236 NTSTATUS
EventLogReportEventW(
237 handle_t BindingHandle
,
241 unsigned short Category
,
243 unsigned short NumStrings
,
244 unsigned long DataSize
,
245 wchar_t *ComputerName
,
249 unsigned short Flags
);
251 NTSTATUS
EventLogClearA(
252 handle_t BindingHandle
,
256 NTSTATUS
EventLogBackupA(
257 handle_t BindingHandle
,
261 NTSTATUS
EventLogOpenA(
262 handle_t BindingHandle
,
266 unsigned long MajorVer
,
267 unsigned long MinorVer
,
270 NTSTATUS
EventLogRegSrcA(
271 handle_t BindingHandle
,
275 unsigned long MajorVer
,
276 unsigned long MinorVer
,
279 NTSTATUS
EventLogOpenBackupA(
280 handle_t BindingHandle
,
283 unsigned long MajorVer
,
284 unsigned long MinorVer
,
287 NTSTATUS
EventLogReadA(
288 handle_t BindingHandle
,
291 unsigned long Offset
,
292 unsigned long BufSize
,
293 unsigned char *Buffer
,
294 unsigned long *BytesRead
,
295 unsigned long *BytesNeeded
);
297 NTSTATUS
EventLogReportEventA(
298 handle_t BindingHandle
,
302 unsigned short Category
,
304 unsigned short NumStrings
,
305 unsigned long DataSize
,
310 unsigned short Flags
);
312 NTSTATUS
Unknown19(handle_t BindingHandle
);
314 NTSTATUS
Unknown20(handle_t BindingHandle
);
316 NTSTATUS
Unknown21(handle_t BindingHandle
);
318 NTSTATUS
EventLogGetInfo(
319 handle_t BindingHandle
,
321 unsigned long InfoLevel
,
322 unsigned char *Buffer
,
323 unsigned long BufSize
,
324 unsigned long *BytesNeeded
);
328 #endif /* __EVENTLOG_H__ */