#include "idl_types.h" /* import "lsa.idl", "security.idl";*/ /* eventlog interface definition */ [ uuid("82273fdc-e32a-18c3-3f78-827929dc23ea"), version(0.0), pointer_default(unique), helpstring("Event Logger") ] interface eventlog { typedef bitmap { EVENTLOG_SEQUENTIAL_READ = 0x0001, EVENTLOG_SEEK_READ = 0x0002, EVENTLOG_FORWARDS_READ = 0x0004, EVENTLOG_BACKWARDS_READ = 0x0008 } eventlogReadFlags; typedef bitmap { EVENTLOG_SUCCESS = 0x0000, EVENTLOG_ERROR_TYPE = 0x0001, EVENTLOG_WARNING_TYPE = 0x0002, EVENTLOG_INFORMATION_TYPE = 0x0004, EVENTLOG_AUDIT_SUCCESS = 0x0008, EVENTLOG_AUDIT_FAILURE = 0x0010 } eventlogEventTypes; typedef struct { uint16 unknown0; uint16 unknown1; } eventlog_OpenUnknown0; typedef [public] struct { uint32 size; uint32 reserved; uint32 record_number; uint32 time_generated; uint32 time_written; uint32 event_id; uint16 event_type; uint16 num_of_strings; uint16 event_category; uint16 reserved_flags; uint32 closing_record_number; uint32 stringoffset; uint32 sid_length; uint32 sid_offset; uint32 data_length; uint32 data_offset; nstring source_name; nstring computer_name; nstring strings[num_of_strings]; astring raw_data; } eventlog_Record; /******************/ /* Function: 0x00 */ NTSTATUS eventlog_ClearEventLogW( [in] policy_handle *handle, [in,unique] lsa_String *backupfilename ); /******************/ /* Function: 0x01 */ NTSTATUS eventlog_BackupEventLogW( [in] policy_handle *handle, [in,unique] lsa_String *backupfilename ); /******************/ /* Function: 0x02 */ NTSTATUS eventlog_CloseEventLog( [in,out] policy_handle *handle ); /******************/ /* Function: 0x03 */ NTSTATUS eventlog_DeregisterEventSource( [in,out] policy_handle *handle ); /******************/ /* Function: 0x04 */ NTSTATUS eventlog_GetNumRecords( [in] policy_handle *handle, [out,ref] uint32 *number ); /******************/ /* Function: 0x05 */ NTSTATUS eventlog_GetOldestRecord( [in] policy_handle *handle, [out,ref] uint32 *oldest ); /******************/ /* Function: 0x06 */ typedef struct { uint32 unknown0; uint32 unknown1; } eventlog_ChangeUnknown0; NTSTATUS eventlog_ChangeNotify( [in] policy_handle *handle, [in, ref] eventlog_ChangeUnknown0 *unknown2, [in] uint32 unknown3 ); /******************/ /* Function: 0x07 */ NTSTATUS eventlog_OpenEventLogW( [in,unique] eventlog_OpenUnknown0 *unknown0, [in] lsa_String Module, [in] lsa_String RegModuleName, [in] uint32 MajorVersion, [in] uint32 MinorVersion, [out] policy_handle *handle ); /******************/ /* Function: 0x08 */ NTSTATUS eventlog_RegisterEventSourceW( [in,unique] eventlog_OpenUnknown0 *unknown0, [in] lsa_String logname, [in] lsa_String servername, [in] uint32 unknown2, [in] uint32 unknown3, [out] policy_handle *handle ); /******************/ /* Function: 0x09 */ NTSTATUS eventlog_OpenBackupEventLogW( [in,unique] eventlog_OpenUnknown0 *unknown0, [in] lsa_String logname, [in] uint32 unknown2, [in] uint32 unknown3, [out] policy_handle *handle ); /******************/ /* Function: 0x0a */ NTSTATUS eventlog_ReadEventLogW( [in] policy_handle *handle, [in] eventlogReadFlags flags, [in] uint32 offset, [in] uint32 number_of_bytes, [out,size_is(number_of_bytes)] uint8 *data, [out,ref] uint32 *sent_size, [out,ref] uint32 *real_size ); /*****************/ /* Function 0x0b */ NTSTATUS eventlog_ReportEventW( [in] policy_handle *handle, [in] uint32 time, [in] eventlogEventTypes Type, [in] uint16 event_category, [in] uint32 event_id, [in] uint16 num_of_strings, [in] uint32 data_length, [in] lsa_String computer_name /* sid */ ); /*****************/ /* Function 0x0c */ NTSTATUS eventlog_ClearEventLogA(); /******************/ /* Function: 0x0d */ NTSTATUS eventlog_BackupEventLogA(); /*****************/ /* Function 0x0e */ NTSTATUS eventlog_OpenEventLogA(); /*****************/ /* Function 0x0f */ NTSTATUS eventlog_RegisterEventSourceA(); /*****************/ /* Function 0x10 */ NTSTATUS eventlog_OpenBackupEventLogA(); /*****************/ /* Function 0x11 */ NTSTATUS eventlog_ReadEventLogA(); /*****************/ /* Function 0x12 */ NTSTATUS eventlog_ReportEventA(); /*****************/ /* Function 0x13 */ NTSTATUS eventlog_RegisterClusterSvc(); /*****************/ /* Function 0x14 */ NTSTATUS eventlog_DeregisterClusterSvc(); /*****************/ /* Function 0x15 */ NTSTATUS eventlog_WriteClusterEvents(); /*****************/ /* Function 0x16 */ NTSTATUS eventlog_GetLogIntormation( [in] policy_handle *handle, [in] uint32 dwInfoLevel, [out] [size_is(cbBufSize)] char lpBuffer[*], [in] uint32 cbBufSize, [out,ref] long *cbBytesNeeded ); /*****************/ /* Function 0x17 */ NTSTATUS eventlog_FlushEventLog( [in] policy_handle *handle ); }