2 * PROJECT: ReactOS EventLog Service
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/services/eventlog/eventlog.h
5 * PURPOSE: Precompiled Header for the Event logging service
6 * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
10 #define __EVENTLOG_H__
14 /* PSDK/NDK Headers */
15 #define WIN32_NO_STATUS
19 #define NTOS_MODE_USER
20 #include <ndk/rtlfuncs.h>
21 #include <ndk/obfuncs.h>
23 #define ROUND_DOWN(n, align) (((ULONG)n) & ~((align) - 1l))
24 #define ROUND_UP(n, align) ROUND_DOWN(((ULONG)n) + (align) - 1, (align))
28 #include <eventlogrpc_s.h>
31 /* Defined in evtlib.h */
32 // #define LOGFILE_SIGNATURE 0x654c664c // "LfLe"
34 typedef struct _LOGFILE
44 typedef struct _EVENTSOURCE
46 LIST_ENTRY EventSourceListEntry
;
49 } EVENTSOURCE
, *PEVENTSOURCE
;
52 /* Log Handle Flags */
53 #define LOG_HANDLE_BACKUP_FILE 1
55 typedef struct _LOGHANDLE
57 LIST_ENTRY LogHandleListEntry
;
58 PEVENTSOURCE EventSource
;
63 } LOGHANDLE
, *PLOGHANDLE
;
67 extern PEVENTSOURCE EventLogSource
;
69 VOID
PRINT_RECORD(PEVENTLOGRECORD pRec
);
73 VOID
InitEventSourceList(VOID
);
76 LoadEventSources(HKEY hKey
,
80 GetEventSourceByName(LPCWSTR Name
);
84 VOID
LogfListInitialize(VOID
);
85 DWORD
LogfListItemCount(VOID
);
86 PLOGFILE
LogfListItemByIndex(DWORD Index
);
87 PLOGFILE
LogfListItemByName(LPCWSTR Name
);
88 // DWORD LogfListItemIndexByName(WCHAR * Name);
91 LogfCreate(PLOGFILE
* LogFile
,
93 PUNICODE_STRING FileName
,
100 LogfClose(PLOGFILE LogFile
,
103 VOID
LogfCloseAll(VOID
);
106 LogfClearFile(PLOGFILE LogFile
,
107 PUNICODE_STRING BackupFileName
);
110 LogfBackupFile(PLOGFILE LogFile
,
111 PUNICODE_STRING BackupFileName
);
114 LogfReadEvents(PLOGFILE LogFile
,
124 LogfWriteRecord(PLOGFILE LogFile
,
125 PEVENTLOGRECORD Record
,
129 LogfAllocAndBuildNewRecord(PSIZE_T pRecSize
,
134 PUNICODE_STRING SourceName
,
135 PUNICODE_STRING ComputerName
,
143 static __inline
void LogfFreeRecord(PEVENTLOGRECORD Record
)
145 HeapFree(GetProcessHeap(), 0, Record
);
149 LogfReportEvent(USHORT wType
,
159 NTSTATUS WINAPI
PortThreadRoutine(PVOID Param
);
161 NTSTATUS
InitLogPort(VOID
);
163 NTSTATUS
ProcessPortMessage(VOID
);
166 DWORD WINAPI
RpcThreadRoutine(LPVOID lpParameter
);
168 #endif /* __EVENTLOG_H__ */