2 * Copyright 2005 Saveliy Tretiakov
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 uuid(82273FDC-E32A-18C3-3F78-827929DC23EA),
22 pointer_default(unique)
32 typedef [handle, unique] wchar_t *LPWSTR;
33 typedef [handle, unique] char *LPSTR;
34 typedef unsigned int NTSTATUS;
36 #define LPWSTR wchar_t *
42 typedef struct _UNICODE_STRING {
43 unsigned short Length;
44 unsigned short MaximumLength;
45 [size_is(MaximumLength/2), unique] wchar_t *Buffer;
46 } UNICODE_STRING, *PUNICODE_STRING;
48 typedef struct _ANSI_STRING {
49 unsigned short Length;
50 unsigned short MaximumLength;
51 [size_is(MaximumLength), unique] char *Buffer;
52 } ANSI_STRING, *PANSI_STRING;
54 #define PUNICODE_STRING wchar_t *
55 #define PANSI_STRING char *
60 typedef [context_handle] struct _LOGHANDLE {
63 typedef LOGHANDLE *PLOGHANDLE;
65 #define LOGHANDLE unsigned int
66 #define PLOGHANDLE unsigned int*
67 cpp_quote("typedef unsigned int LOGHANDLE, *PLOGHANDLE;");
71 NTSTATUS ElfrClearELFW(
73 handle_t BindingHandle,
75 [in] LOGHANDLE Handle,
76 [in] PUNICODE_STRING BackupName);
79 NTSTATUS ElfrBackupELFW(
81 handle_t BindingHandle,
83 [in] LOGHANDLE Handle,
84 [in] PUNICODE_STRING BackupName);
89 handle_t BindingHandle,
91 [in,out] PLOGHANDLE Handle);
94 NTSTATUS ElfrDeregisterEventSource(
96 handle_t BindingHandle,
98 [in,out] PLOGHANDLE Handle);
101 NTSTATUS ElfrNumberOfRecords(
103 handle_t BindingHandle,
105 [in] LOGHANDLE Handle,
106 [out] long *NumberOfRecords);
109 NTSTATUS ElfrOldestRecord(
111 handle_t BindingHandle,
113 [in] LOGHANDLE LogHandle,
114 [out] long *OldestRecNumber);
117 //NTSTATUS ElfrChangeNotify(); // FIXME
120 NTSTATUS ElfrOpenELW(
122 handle_t BindingHandle,
124 [in, unique] LPWSTR ServerName,
125 [in] PUNICODE_STRING FileName,
126 [in] PUNICODE_STRING NullStr,
129 [out] PLOGHANDLE Handle );
132 NTSTATUS ElfrRegisterEventSourceW(
134 handle_t BindingHandle,
136 [in, unique] LPWSTR ServerName,
137 [in] PUNICODE_STRING LogName,
138 [in] PUNICODE_STRING NullStr,
141 [out] PLOGHANDLE Handle);
144 NTSTATUS ElfrOpenBELW(
146 handle_t BindingHandle,
148 [in, unique] LPWSTR ServerName,
149 [in] PUNICODE_STRING BackupName,
152 [out] PLOGHANDLE Handle);
155 NTSTATUS ElfrReadELW(
157 handle_t BindingHandle,
159 [in] LOGHANDLE Handle,
163 [out,size_is(BufSize)] unsigned char *Buffer,
164 [out] long *BytesRead,
165 [out] long *BytesNeeded);
168 NTSTATUS ElfrReportEventW(
170 handle_t BindingHandle,
172 [in] LOGHANDLE Handle,
177 [in] short NumStrings,
179 [in] PUNICODE_STRING ComputerName,
180 [in, unique] unsigned char *SID,
182 [in, size_is(NumStrings), unique] PUNICODE_STRING Strings[*],
184 [in, size_is(NumStrings), unique] PUNICODE_STRING *Strings,
186 [in, size_is(DataSize), unique] unsigned char *Data,
188 [in,out,unique] long *unknown1,
189 [in,out,unique] long *unknown2);
192 NTSTATUS ElfrClearELFA(
194 handle_t BindingHandle,
196 [in] LOGHANDLE Handle,
197 [in,unique] PANSI_STRING BackupName);
200 NTSTATUS ElfrBackupELFA(
202 handle_t BindingHandle,
204 [in] LOGHANDLE Handle,
205 [in] PANSI_STRING BackupName);
208 NTSTATUS ElfrOpenELA(
210 handle_t BindingHandle,
212 [in, unique] LPSTR ServerName,
213 [in] PANSI_STRING LogName,
214 [in] PANSI_STRING NullStr,
217 [out] PLOGHANDLE Handle);
220 NTSTATUS ElfrRegisterEventSourceA(
222 handle_t BindingHandle,
224 [in, unique] LPSTR ServerName,
225 [in] PANSI_STRING LogName,
226 [in] PANSI_STRING NullStr,
229 [out] PLOGHANDLE Handle);
232 NTSTATUS ElfrOpenBELA(
234 handle_t BindingHandle,
236 [in, unique] LPSTR ServerName,
237 [in] PANSI_STRING BakckupName,
240 [out] PLOGHANDLE Handle);
243 NTSTATUS ElfrReadELA(
245 handle_t BindingHandle,
247 [in] LOGHANDLE Handle,
251 [out,size_is(BufSize)] unsigned char *Buffer,
252 [out] long *BytesRead,
253 [out] long *BytesNeeded);
256 NTSTATUS ElfrReportEventA(
258 handle_t BindingHandle,
260 [in] LOGHANDLE Handle,
265 [in] short NumStrings,
267 [in] PANSI_STRING ComputerName,
268 [in, unique] unsigned char *SID,
270 [in, size_is(NumStrings), unique] PANSI_STRING Strings[*],
272 [in, size_is(NumStrings), unique] PANSI_STRING *Strings,
274 [in, size_is(DataSize), unique] unsigned char *Data,
276 [in,out,unique] long *unknown1,
277 [in,out,unique] long *unknown2);
280 //NTSTATUS ElfrRegisterClusterSvc(); //FIXME
283 //NTSTATUS ElfrDeregisterClusterSvc(); //FIXME
286 //NTSTATUS ElfrWriteClusterEvents(); //FIXME
289 NTSTATUS ElfrGetLogInformation(
291 handle_t BindingHandle,
293 [in] LOGHANDLE Handle,
295 [out, size_is(BufSize)] unsigned char *Buffer,
297 [out] long *BytesNeeded);
300 NTSTATUS ElfrFlushEL(
302 handle_t BindingHandle,
304 [in] LOGHANDLE Handle);