Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169/* * PROJECT: ReactOS EventLog Service * LICENSE: GPL - See COPYING in the top level directory * FILE: base/services/eventlog/eventlog.h * PURPOSE: Precompiled Header for the Event logging service * COPYRIGHT: Copyright 2005 Saveliy Tretiakov */
#ifndef __EVENTLOG_H__#define __EVENTLOG_H__
#include <stdarg.h>
/* PSDK/NDK Headers */#define WIN32_NO_STATUS#include <windef.h>#include <winbase.h>
#define NTOS_MODE_USER#include <ndk/rtlfuncs.h>#include <ndk/obfuncs.h>
#define ROUND_DOWN(n, align) (((ULONG)n) & ~((align) - 1l))#define ROUND_UP(n, align) ROUND_DOWN(((ULONG)n) + (align) - 1, (align))
#include <evtlib.h>
#include <eventlogrpc_s.h>#include <strsafe.h>
/* Defined in evtlib.h */// #define LOGFILE_SIGNATURE 0x654c664c // "LfLe"
typedef struct _LOGFILE{ EVTLOGFILE LogFile; HANDLE FileHandle; WCHAR *LogName; RTL_RESOURCE Lock; BOOL Permanent; LIST_ENTRY ListEntry;} LOGFILE, *PLOGFILE;
typedef struct _EVENTSOURCE{ LIST_ENTRY EventSourceListEntry; PLOGFILE LogFile; WCHAR szName[1];} EVENTSOURCE, *PEVENTSOURCE;
/* Log Handle Flags */#define LOG_HANDLE_BACKUP_FILE 1
typedef struct _LOGHANDLE{ LIST_ENTRY LogHandleListEntry; PEVENTSOURCE EventSource; PLOGFILE LogFile; ULONG CurrentRecord; ULONG Flags; WCHAR szName[1];} LOGHANDLE, *PLOGHANDLE;
/* eventlog.c */extern PEVENTSOURCE EventLogSource;
VOID PRINT_RECORD(PEVENTLOGRECORD pRec);
/* eventsource.c */VOID InitEventSourceList(VOID);
BOOLLoadEventSources(HKEY hKey, PLOGFILE pLogFile);
PEVENTSOURCEGetEventSourceByName(LPCWSTR Name);
/* file.c */VOID LogfListInitialize(VOID);DWORD LogfListItemCount(VOID);PLOGFILE LogfListItemByIndex(DWORD Index);PLOGFILE LogfListItemByName(LPCWSTR Name);// DWORD LogfListItemIndexByName(WCHAR * Name);
NTSTATUSLogfCreate(PLOGFILE* LogFile, PCWSTR LogName, PUNICODE_STRING FileName, ULONG MaxSize, ULONG Retention, BOOLEAN Permanent, BOOLEAN Backup);
VOIDLogfClose(PLOGFILE LogFile, BOOLEAN ForceClose);
VOID LogfCloseAll(VOID);
NTSTATUSLogfClearFile(PLOGFILE LogFile, PUNICODE_STRING BackupFileName);
NTSTATUSLogfBackupFile(PLOGFILE LogFile, PUNICODE_STRING BackupFileName);
NTSTATUSLogfReadEvents(PLOGFILE LogFile, ULONG Flags, PULONG RecordNumber, ULONG BufSize, PBYTE Buffer, PULONG BytesRead, PULONG BytesNeeded, BOOLEAN Ansi);
NTSTATUSLogfWriteRecord(PLOGFILE LogFile, PEVENTLOGRECORD Record, SIZE_T BufSize);
PEVENTLOGRECORDLogfAllocAndBuildNewRecord(PSIZE_T pRecSize, ULONG Time, USHORT wType, USHORT wCategory, ULONG dwEventId, PUNICODE_STRING SourceName, PUNICODE_STRING ComputerName, ULONG dwSidLength, PSID pUserSid, USHORT wNumStrings, PWSTR pStrings, ULONG dwDataSize, PVOID pRawData);
static __inline void LogfFreeRecord(PEVENTLOGRECORD Record){ RtlFreeHeap(GetProcessHeap(), 0, Record);}
VOIDLogfReportEvent(USHORT wType, USHORT wCategory, ULONG dwEventId, USHORT wNumStrings, PWSTR pStrings, ULONG dwDataSize, PVOID pRawData);
/* logport.c */NTSTATUS WINAPI PortThreadRoutine(PVOID Param);
NTSTATUS InitLogPort(VOID);
NTSTATUS ProcessPortMessage(VOID);
/* rpc.c */DWORD WINAPI RpcThreadRoutine(LPVOID lpParameter);
#endif /* __EVENTLOG_H__ */