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__
12 #define WIN32_NO_STATUS
14 #define NTOS_MODE_USER
15 #include <ndk/ntndk.h>
17 #include "eventlogrpc_s.h"
19 typedef struct _IO_ERROR_LPC
22 IO_ERROR_LOG_MESSAGE Message
;
23 } IO_ERROR_LPC
, *PIO_ERROR_LPC
;
25 #define LOGHANDLE unsigned char*
26 #define PLOGHANDLE int*
32 * Our file format will be compatible with NT's
35 #define LOGFILE_SIGNATURE 0x654c664c
39 * Flags used in logfile header
41 #define LOGFILE_FLAG1 1
42 #define LOGFILE_FLAG2 2
43 #define LOGFILE_FLAG3 4
44 #define LOGFILE_FLAG4 8
51 DWORD FirstRecordOffset
;
59 } FILE_HEADER
, *PFILE_HEADER
;
63 DWORD Ones
; // Must be 0x11111111
64 DWORD Twos
; // Must be 0x22222222
65 DWORD Threes
; // Must be 0x33333333
66 DWORD Fours
; // Must be 0x44444444
69 DWORD NextRecordNumber
;
70 DWORD OldestRecordNumber
;
72 } EOF_RECORD
, *PEOF_RECORD
;
77 } EVENT_OFFSET_INFO
, *PEVENT_OFFSET_INFO
;
85 PEVENT_OFFSET_INFO OffsetInfo
;
94 PLOGFILE
LogfListHead();
96 INT
LogfListItemCount();
98 PLOGFILE
LogfListItemByIndex(INT Index
);
100 PLOGFILE
LogfListItemByName(WCHAR
*Name
);
102 VOID
LogfListAddItem(PLOGFILE Item
);
104 VOID
LogfListRemoveItem(PLOGFILE Item
);
106 BOOL
LogfReadEvent(PLOGFILE LogFile
,
114 BOOL
LogfWriteData(PLOGFILE LogFile
,
118 PLOGFILE
LogfCreate(WCHAR
*LogName
,
121 VOID
LogfClose(PLOGFILE LogFile
);
123 BOOL
LogfInitializeNew(PLOGFILE LogFile
);
125 BOOL
LogfInitializeExisting(PLOGFILE LogFile
);
127 DWORD
LogfGetOldestRecord(PLOGFILE LogFile
);
129 ULONG
LogfOffsetByNumber(PLOGFILE LogFile
,
132 BOOL
LogfAddOffsetInformation(PLOGFILE LogFile
,
136 DWORD
LogfBuildNewRecord(PBYTE Buffer
,
137 DWORD dwRecordNumber
,
142 LPCWSTR ComputerName
,
151 VOID
PRINT_HEADER(PFILE_HEADER header
);
153 VOID
PRINT_RECORD(PEVENTLOGRECORD pRec
);
155 VOID
EventTimeToSystemTime(DWORD EventTime
,
156 SYSTEMTIME
*SystemTime
);
158 VOID
SystemTimeToEventTime(SYSTEMTIME
*pSystemTime
,
162 NTSTATUS STDCALL
PortThreadRoutine(PVOID Param
);
164 NTSTATUS
InitLogPort(VOID
);
166 NTSTATUS
ProcessPortMessage(VOID
);
169 DWORD STDCALL
RpcThreadRoutine(LPVOID lpParameter
);
171 NTSTATUS
EventLogClearW(
172 handle_t BindingHandle
,
174 wchar_t *BackupName
);
176 NTSTATUS
EventLogBackupW(
177 handle_t BindingHandle
,
181 NTSTATUS
EventLogClose(
182 handle_t BindingHandle
,
185 NTSTATUS
EventLogUnregSrc(
186 handle_t BindingHandle
,
189 NTSTATUS
EventLogRecordsNumber(
190 handle_t BindingHandle
,
192 unsigned long *RecordsNumber
);
194 NTSTATUS
EventLogGetOldestRec(
195 handle_t BindingHandle
,
197 unsigned long *OldestRecNumber
);
199 NTSTATUS
Unknown6(handle_t BindingHandle
);
201 NTSTATUS
EventLogOpenW(
202 handle_t BindingHandle
,
206 unsigned long MajorVer
,
207 unsigned long MinorVer
,
210 NTSTATUS
EventLogRegSrcW(
211 handle_t BindingHandle
,
215 unsigned long MajorVer
,
216 unsigned long MinorVer
,
219 NTSTATUS
EventLogOpenBackupW(
220 handle_t BindingHandle
,
223 unsigned long MajorVer
,
224 unsigned long MinorVer
,
227 NTSTATUS
EventLogReadW(
228 handle_t BindingHandle
,
231 unsigned long Offset
,
232 unsigned long BufSize
,
233 unsigned char *Buffer
,
234 unsigned long *BytesRead
,
235 unsigned long *BytesNeeded
);
237 NTSTATUS
EventLogReportEventW(
238 handle_t BindingHandle
,
242 unsigned short Category
,
244 unsigned short NumStrings
,
245 unsigned long DataSize
,
246 wchar_t *ComputerName
,
250 unsigned short Flags
);
252 NTSTATUS
EventLogClearA(
253 handle_t BindingHandle
,
257 NTSTATUS
EventLogBackupA(
258 handle_t BindingHandle
,
262 NTSTATUS
EventLogOpenA(
263 handle_t BindingHandle
,
267 unsigned long MajorVer
,
268 unsigned long MinorVer
,
271 NTSTATUS
EventLogRegSrcA(
272 handle_t BindingHandle
,
276 unsigned long MajorVer
,
277 unsigned long MinorVer
,
280 NTSTATUS
EventLogOpenBackupA(
281 handle_t BindingHandle
,
284 unsigned long MajorVer
,
285 unsigned long MinorVer
,
288 NTSTATUS
EventLogReadA(
289 handle_t BindingHandle
,
292 unsigned long Offset
,
293 unsigned long BufSize
,
294 unsigned char *Buffer
,
295 unsigned long *BytesRead
,
296 unsigned long *BytesNeeded
);
298 NTSTATUS
EventLogReportEventA(
299 handle_t BindingHandle
,
303 unsigned short Category
,
305 unsigned short NumStrings
,
306 unsigned long DataSize
,
311 unsigned short Flags
);
313 NTSTATUS
Unknown19(handle_t BindingHandle
);
315 NTSTATUS
Unknown20(handle_t BindingHandle
);
317 NTSTATUS
Unknown21(handle_t BindingHandle
);
319 NTSTATUS
EventLogGetInfo(
320 handle_t BindingHandle
,
322 unsigned long InfoLevel
,
323 unsigned char *Buffer
,
324 unsigned long BufSize
,
325 unsigned long *BytesNeeded
);
329 #endif /* __EVENTLOG_H__ */