1 | #include "idl_types.h"
|
---|
2 |
|
---|
3 | /*
|
---|
4 | eventlog interface definition
|
---|
5 | */
|
---|
6 |
|
---|
7 | import "lsa.idl", "security.idl";
|
---|
8 |
|
---|
9 | [ uuid("82273fdc-e32a-18c3-3f78-827929dc23ea"),
|
---|
10 | version(0.0),
|
---|
11 | helpstring("Event Logger")
|
---|
12 | ] interface eventlog
|
---|
13 | {
|
---|
14 | typedef [bitmap32bit] bitmap {
|
---|
15 | EVENTLOG_SEQUENTIAL_READ = 0x0001,
|
---|
16 | EVENTLOG_SEEK_READ = 0x0002,
|
---|
17 | EVENTLOG_FORWARDS_READ = 0x0004,
|
---|
18 | EVENTLOG_BACKWARDS_READ = 0x0008
|
---|
19 | } eventlogReadFlags;
|
---|
20 |
|
---|
21 | typedef [public] enum {
|
---|
22 | EVENTLOG_SUCCESS = 0x0000,
|
---|
23 | EVENTLOG_ERROR_TYPE = 0x0001,
|
---|
24 | EVENTLOG_WARNING_TYPE = 0x0002,
|
---|
25 | EVENTLOG_INFORMATION_TYPE = 0x0004,
|
---|
26 | EVENTLOG_AUDIT_SUCCESS = 0x0008,
|
---|
27 | EVENTLOG_AUDIT_FAILURE = 0x0010
|
---|
28 | } eventlogEventTypes;
|
---|
29 |
|
---|
30 | typedef struct {
|
---|
31 | uint16 unknown0;
|
---|
32 | uint16 unknown1;
|
---|
33 | } eventlog_OpenUnknown0;
|
---|
34 |
|
---|
35 | /* compat structure for samba3 on-disc eventlog format,
|
---|
36 | this is *NOT* used on the wire. - gd */
|
---|
37 |
|
---|
38 | typedef [flag(NDR_NOALIGN|NDR_PAHEX),public] struct {
|
---|
39 | uint32 size;
|
---|
40 | [charset(DOS),value("eLfL")] uint8 reserved[4];
|
---|
41 | uint32 record_number;
|
---|
42 | time_t time_generated;
|
---|
43 | time_t time_written;
|
---|
44 | uint32 event_id;
|
---|
45 | eventlogEventTypes event_type;
|
---|
46 | [range(0,256)] uint16 num_of_strings;
|
---|
47 | uint16 event_category;
|
---|
48 | uint16 reserved_flags;
|
---|
49 | uint32 closing_record_number;
|
---|
50 | uint32 stringoffset;
|
---|
51 | [value(sid.length)] uint32 sid_length;
|
---|
52 | uint32 sid_offset;
|
---|
53 | [value(data.length)] uint32 data_length;
|
---|
54 | uint32 data_offset;
|
---|
55 | [value(2*strlen_m_term(source_name))] uint32 source_name_len;
|
---|
56 | nstring source_name;
|
---|
57 | [value(2*strlen_m_term(computer_name))] uint32 computer_name_len;
|
---|
58 | nstring computer_name;
|
---|
59 | uint32 sid_padding;
|
---|
60 | DATA_BLOB sid;
|
---|
61 | [value(2*ndr_size_string_array(strings, num_of_strings, STR_NULLTERM))] uint32 strings_len;
|
---|
62 | nstring strings[num_of_strings];
|
---|
63 | DATA_BLOB data;
|
---|
64 | uint32 padding;
|
---|
65 | } eventlog_Record_tdb;
|
---|
66 |
|
---|
67 | typedef [v1_enum] enum {
|
---|
68 | ELF_LOGFILE_HEADER_DIRTY = 0x0001,
|
---|
69 | ELF_LOGFILE_HEADER_WRAP = 0x0002,
|
---|
70 | ELF_LOGFILE_LOGFULL_WRITTEN = 0x0004,
|
---|
71 | ELF_LOGFILE_ARCHIVE_SET = 0x0008
|
---|
72 | } EVENTLOG_HEADER_FLAGS;
|
---|
73 |
|
---|
74 | typedef [public] struct {
|
---|
75 | [value(0x30)] uint32 HeaderSize;
|
---|
76 | [charset(DOS),value("LfLe")] uint8 Signature[4];
|
---|
77 | [value(1)] uint32 MajorVersion;
|
---|
78 | [value(1)] uint32 MinorVersion;
|
---|
79 | uint32 StartOffset;
|
---|
80 | uint32 EndOffset;
|
---|
81 | uint32 CurrentRecordNumber;
|
---|
82 | uint32 OldestRecordNumber;
|
---|
83 | uint32 MaxSize;
|
---|
84 | EVENTLOG_HEADER_FLAGS Flags;
|
---|
85 | uint32 Retention;
|
---|
86 | [value(0x30)] uint32 EndHeaderSize;
|
---|
87 | } EVENTLOGHEADER;
|
---|
88 |
|
---|
89 | typedef [public,gensize] struct {
|
---|
90 | uint32 Length;
|
---|
91 | [charset(DOS),value("LfLe")] uint8 Reserved[4];
|
---|
92 | uint32 RecordNumber;
|
---|
93 | time_t TimeGenerated;
|
---|
94 | time_t TimeWritten;
|
---|
95 | uint32 EventID;
|
---|
96 | eventlogEventTypes EventType;
|
---|
97 | uint16 NumStrings;
|
---|
98 | uint16 EventCategory;
|
---|
99 | uint16 ReservedFlags;
|
---|
100 | uint32 ClosingRecordNumber;
|
---|
101 | [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername))+UserSidLength)] uint32 StringOffset;
|
---|
102 | [value(ndr_size_dom_sid0(&UserSid, ndr->flags))] uint32 UserSidLength;
|
---|
103 | [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername)))] uint32 UserSidOffset;
|
---|
104 | uint32 DataLength;
|
---|
105 | [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername))+UserSidLength+(2*ndr_size_string_array(Strings, NumStrings, STR_NULLTERM)))] uint32 DataOffset;
|
---|
106 | nstring SourceName;
|
---|
107 | nstring Computername;
|
---|
108 | [flag(NDR_ALIGN4),subcontext(0),subcontext_size(UserSidLength)] dom_sid0 UserSid;
|
---|
109 | nstring Strings[NumStrings];
|
---|
110 | [flag(NDR_PAHEX)] uint8 Data[DataLength];
|
---|
111 | astring Pad;
|
---|
112 | [value(Length)] uint32 Length2;
|
---|
113 | } EVENTLOGRECORD;
|
---|
114 |
|
---|
115 | typedef [public] struct {
|
---|
116 | [value(0x28)] uint32 RecordSizeBeginning;
|
---|
117 | [value(0x11111111)] uint32 One;
|
---|
118 | [value(0x22222222)] uint32 Two;
|
---|
119 | [value(0x33333333)] uint32 Three;
|
---|
120 | [value(0x44444444)] uint32 Four;
|
---|
121 | uint32 BeginRecord;
|
---|
122 | uint32 EndRecord;
|
---|
123 | uint32 CurrentRecordNumber;
|
---|
124 | uint32 OldestRecordNumber;
|
---|
125 | [value(0x28)] uint32 RecordSizeEnd;
|
---|
126 | } EVENTLOGEOF;
|
---|
127 |
|
---|
128 | /* the following is true for a non-wrapped evt file (e.g. backups
|
---|
129 | * generated and viewed with eventvwr) */
|
---|
130 |
|
---|
131 | typedef [public] struct {
|
---|
132 | EVENTLOGHEADER hdr;
|
---|
133 | EVENTLOGRECORD records[hdr.CurrentRecordNumber-hdr.OldestRecordNumber];
|
---|
134 | EVENTLOGEOF eof;
|
---|
135 | } EVENTLOG_EVT_FILE;
|
---|
136 |
|
---|
137 | /******************/
|
---|
138 | /* Function: 0x00 */
|
---|
139 | NTSTATUS eventlog_ClearEventLogW(
|
---|
140 | [in] policy_handle *handle,
|
---|
141 | [in,unique] lsa_String *backupfile
|
---|
142 | );
|
---|
143 |
|
---|
144 | /******************/
|
---|
145 | /* Function: 0x01 */
|
---|
146 | NTSTATUS eventlog_BackupEventLogW(
|
---|
147 | [in] policy_handle *handle,
|
---|
148 | [in,ref] lsa_String *backup_filename
|
---|
149 | );
|
---|
150 |
|
---|
151 | /******************/
|
---|
152 | /* Function: 0x02 */
|
---|
153 | NTSTATUS eventlog_CloseEventLog(
|
---|
154 | [in,out] policy_handle *handle
|
---|
155 | );
|
---|
156 |
|
---|
157 | /******************/
|
---|
158 | /* Function: 0x03 */
|
---|
159 | NTSTATUS eventlog_DeregisterEventSource(
|
---|
160 | [in,out] policy_handle *handle
|
---|
161 | );
|
---|
162 |
|
---|
163 | /******************/
|
---|
164 | /* Function: 0x04 */
|
---|
165 | NTSTATUS eventlog_GetNumRecords(
|
---|
166 | [in] policy_handle *handle,
|
---|
167 | [out,ref] uint32 *number
|
---|
168 | );
|
---|
169 |
|
---|
170 | /******************/
|
---|
171 | /* Function: 0x05 */
|
---|
172 | NTSTATUS eventlog_GetOldestRecord(
|
---|
173 | [in] policy_handle *handle,
|
---|
174 | [out,ref] uint32 *oldest_entry
|
---|
175 | );
|
---|
176 |
|
---|
177 | /******************/
|
---|
178 | /* Function: 0x06 */
|
---|
179 | [todo] NTSTATUS eventlog_ChangeNotify();
|
---|
180 |
|
---|
181 | /******************/
|
---|
182 | /* Function: 0x07 */
|
---|
183 | NTSTATUS eventlog_OpenEventLogW(
|
---|
184 | [in,unique] eventlog_OpenUnknown0 *unknown0,
|
---|
185 | [in,ref] lsa_String *logname,
|
---|
186 | [in,ref] lsa_String *servername,
|
---|
187 | [in] uint32 major_version,
|
---|
188 | [in] uint32 minor_version,
|
---|
189 | [out] policy_handle *handle
|
---|
190 | );
|
---|
191 |
|
---|
192 | /******************/
|
---|
193 | /* Function: 0x08 */
|
---|
194 | NTSTATUS eventlog_RegisterEventSourceW(
|
---|
195 | [in,unique] eventlog_OpenUnknown0 *unknown0,
|
---|
196 | [in,ref] lsa_String *module_name,
|
---|
197 | [in,ref] lsa_String *reg_module_name,
|
---|
198 | [in] uint32 major_version,
|
---|
199 | [in] uint32 minor_version,
|
---|
200 | [out] policy_handle *log_handle
|
---|
201 | );
|
---|
202 |
|
---|
203 | /******************/
|
---|
204 | /* Function: 0x09 */
|
---|
205 | NTSTATUS eventlog_OpenBackupEventLogW(
|
---|
206 | [in,unique] eventlog_OpenUnknown0 *unknown0,
|
---|
207 | [in,ref] lsa_String *backup_logname,
|
---|
208 | [in] uint32 major_version,
|
---|
209 | [in] uint32 minor_version,
|
---|
210 | [out] policy_handle *handle
|
---|
211 | );
|
---|
212 |
|
---|
213 | /******************/
|
---|
214 | /* Function: 0x0a */
|
---|
215 | NTSTATUS eventlog_ReadEventLogW(
|
---|
216 | [in] policy_handle *handle,
|
---|
217 | [in] eventlogReadFlags flags,
|
---|
218 | [in] uint32 offset,
|
---|
219 | [in] [range(0,0x7FFFF)] uint32 number_of_bytes,
|
---|
220 | [out,ref,size_is(number_of_bytes)] uint8 *data,
|
---|
221 | [out,ref] uint32 *sent_size,
|
---|
222 | [out,ref] uint32 *real_size
|
---|
223 | );
|
---|
224 |
|
---|
225 | /*****************/
|
---|
226 | /* Function 0x0b */
|
---|
227 | NTSTATUS eventlog_ReportEventW(
|
---|
228 | [in] policy_handle *handle,
|
---|
229 | [in] time_t timestamp,
|
---|
230 | [in] eventlogEventTypes event_type,
|
---|
231 | [in] uint16 event_category,
|
---|
232 | [in] uint32 event_id,
|
---|
233 | [in] [range(0,256)] uint16 num_of_strings,
|
---|
234 | [in] [range(0,0x3FFFF)] uint32 data_size,
|
---|
235 | [in,ref] lsa_String *servername,
|
---|
236 | [in,unique] dom_sid *user_sid,
|
---|
237 | [in,unique] [size_is(num_of_strings)] lsa_String **strings,
|
---|
238 | [in,unique] [size_is(data_size)] uint8 *data,
|
---|
239 | [in] uint16 flags,
|
---|
240 | [in,out,unique] uint32 *record_number,
|
---|
241 | [in,out,unique] time_t *time_written
|
---|
242 | );
|
---|
243 |
|
---|
244 | /*****************/
|
---|
245 | /* Function 0x0c */
|
---|
246 | [todo] NTSTATUS eventlog_ClearEventLogA();
|
---|
247 |
|
---|
248 | /******************/
|
---|
249 | /* Function: 0x0d */
|
---|
250 | [todo] NTSTATUS eventlog_BackupEventLogA();
|
---|
251 |
|
---|
252 | /*****************/
|
---|
253 | /* Function 0x0e */
|
---|
254 | [todo] NTSTATUS eventlog_OpenEventLogA();
|
---|
255 |
|
---|
256 | /*****************/
|
---|
257 | /* Function 0x0f */
|
---|
258 | [todo] NTSTATUS eventlog_RegisterEventSourceA();
|
---|
259 |
|
---|
260 | /*****************/
|
---|
261 | /* Function 0x10 */
|
---|
262 | [todo] NTSTATUS eventlog_OpenBackupEventLogA();
|
---|
263 |
|
---|
264 | /*****************/
|
---|
265 | /* Function 0x11 */
|
---|
266 | [todo] NTSTATUS eventlog_ReadEventLogA();
|
---|
267 |
|
---|
268 | /*****************/
|
---|
269 | /* Function 0x12 */
|
---|
270 | [todo] NTSTATUS eventlog_ReportEventA();
|
---|
271 |
|
---|
272 | /*****************/
|
---|
273 | /* Function 0x13 */
|
---|
274 | [todo] NTSTATUS eventlog_RegisterClusterSvc();
|
---|
275 |
|
---|
276 | /*****************/
|
---|
277 | /* Function 0x14 */
|
---|
278 | [todo] NTSTATUS eventlog_DeregisterClusterSvc();
|
---|
279 |
|
---|
280 | /*****************/
|
---|
281 | /* Function 0x15 */
|
---|
282 | [todo] NTSTATUS eventlog_WriteClusterEvents();
|
---|
283 |
|
---|
284 | /*****************/
|
---|
285 | /* Function 0x16 */
|
---|
286 |
|
---|
287 | typedef [public] struct {
|
---|
288 | boolean32 full;
|
---|
289 | } EVENTLOG_FULL_INFORMATION;
|
---|
290 |
|
---|
291 | NTSTATUS eventlog_GetLogInformation(
|
---|
292 | [in] policy_handle *handle,
|
---|
293 | [in] uint32 level,
|
---|
294 | [out,ref] [size_is(buf_size)] uint8 *buffer,
|
---|
295 | [in] [range(0,1024)] uint32 buf_size,
|
---|
296 | [out,ref] uint32 *bytes_needed
|
---|
297 | );
|
---|
298 |
|
---|
299 | /*****************/
|
---|
300 | /* Function 0x17 */
|
---|
301 | NTSTATUS eventlog_FlushEventLog(
|
---|
302 | [in] policy_handle *handle
|
---|
303 | );
|
---|
304 |
|
---|
305 | /*****************/
|
---|
306 | /* Function 0x18 */
|
---|
307 | NTSTATUS eventlog_ReportEventAndSourceW(
|
---|
308 | [in] policy_handle *handle,
|
---|
309 | [in] time_t timestamp,
|
---|
310 | [in] eventlogEventTypes event_type,
|
---|
311 | [in] uint16 event_category,
|
---|
312 | [in] uint32 event_id,
|
---|
313 | [in,ref] lsa_String *sourcename,
|
---|
314 | [in] [range(0,256)] uint16 num_of_strings,
|
---|
315 | [in] [range(0,0x3FFFF)] uint32 data_size,
|
---|
316 | [in,ref] lsa_String *servername,
|
---|
317 | [in,unique] dom_sid *user_sid,
|
---|
318 | [in,unique] [size_is(num_of_strings)] lsa_String **strings,
|
---|
319 | [in,unique] [size_is(data_size)] uint8 *data,
|
---|
320 | [in] uint16 flags,
|
---|
321 | [in,out,unique] uint32 *record_number,
|
---|
322 | [in,out,unique] time_t *time_written
|
---|
323 | );
|
---|
324 | }
|
---|