ae78f89a81e6ba2c34476fc33368f742b8a61942
[reactos.git] / reactos / include / reactos / idl / eventlogrpc.idl
1 /*
2 * Event Log RPC interface definition
3 */
4
5 #include <ms-dtyp.idl>
6
7 cpp_quote("#if !defined(__EVENTLOG_H__) && !defined(__ADVAPI32_H)")
8 typedef long NTSTATUS;
9 cpp_quote("#endif")
10
11 #define MAX_BATCH_BUFF 0x0007FFFF
12
13 typedef [range(0, MAX_BATCH_BUFF)] unsigned long RULONG;
14 typedef struct _RPC_STRING {
15 USHORT Length;
16 USHORT MaximumLength;
17 [size_is(MaximumLength), length_is(Length)] LPSTR Buffer;
18 } RPC_STRING, *PRPC_STRING;
19
20 typedef [context_handle] PVOID IELF_HANDLE;
21 typedef IELF_HANDLE *PIELF_HANDLE;
22 typedef [handle, unique] LPWSTR EVENTLOG_HANDLE_W;
23 typedef [handle, unique] LPSTR EVENTLOG_HANDLE_A;
24
25 typedef struct _RPC_CLIENT_ID {
26 DWORD UniqueProcess;
27 DWORD UniqueThread;
28 } RPC_CLIENT_ID, *PRPC_CLIENT_ID;
29
30 [
31 uuid(82273FDC-E32A-18C3-3F78-827929DC23EA),
32 version(0.0),
33 pointer_default(unique)
34 #ifndef __midl
35 ,explicit_handle
36 #endif
37 ]
38
39 interface eventlog
40 {
41 /* Function 0 */
42 NTSTATUS ElfrClearELFW(
43 [in] IELF_HANDLE LogHandle,
44 [in, unique] PRPC_UNICODE_STRING BackupFileName);
45
46 /* Function 1 */
47 NTSTATUS ElfrBackupELFW(
48 [in] IELF_HANDLE LogHandle,
49 [in, unique] PRPC_UNICODE_STRING BackupFileName);
50
51 /* Function 2 */
52 NTSTATUS ElfrCloseEL(
53 [in, out] IELF_HANDLE *LogHandle);
54
55 /* Function 3 */
56 NTSTATUS ElfrDeregisterEventSource(
57 [in, out] IELF_HANDLE *LogHandle);
58
59 /* Function 4 */
60 NTSTATUS ElfrNumberOfRecords(
61 [in] IELF_HANDLE LogHandle,
62 [out] DWORD *NumberOfRecords);
63
64 /* Function 5 */
65 NTSTATUS ElfrOldestRecord(
66 [in] IELF_HANDLE LogHandle,
67 [out] DWORD *OldestRecordNumber);
68
69 /* Function 6 */
70 NTSTATUS ElfrChangeNotify(
71 [in] IELF_HANDLE *LogHandle,
72 [in] RPC_CLIENT_ID ClientId,
73 [in] DWORD Event);
74
75 /* Function 7 */
76 NTSTATUS ElfrOpenELW(
77 [in, unique] EVENTLOG_HANDLE_W UNCServerName, /* FIXME */
78 [in] PRPC_UNICODE_STRING ModuleName,
79 [in] PRPC_UNICODE_STRING RegModuleName,
80 [in] DWORD MajorVersion,
81 [in] DWORD MinorVersion,
82 [out] IELF_HANDLE* LogHandle);
83
84 /* Function 8 */
85 NTSTATUS ElfrRegisterEventSourceW(
86 [in, unique] EVENTLOG_HANDLE_W UNCServerName, /* FIXME */
87 [in] PRPC_UNICODE_STRING ModuleName,
88 [in] PRPC_UNICODE_STRING RegModuleName,
89 [in] DWORD MajorVersion,
90 [in] DWORD MinorVersion,
91 [out] IELF_HANDLE* LogHandle);
92
93 /* Function 9 */
94 NTSTATUS ElfrOpenBELW(
95 [in, unique] EVENTLOG_HANDLE_W UNCServerName, /* FIXME */
96 [in] PRPC_UNICODE_STRING BackupFileName,
97 [in] DWORD MajorVersion,
98 [in] DWORD MinorVersion,
99 [out] IELF_HANDLE* LogHandle);
100
101 /* Function 10 */
102 NTSTATUS ElfrReadELW(
103 [in] IELF_HANDLE LogHandle,
104 [in] DWORD ReadFlags,
105 [in] DWORD RecordOffset,
106 [in] RULONG NumberOfBytesToRead,
107 [out, size_is(NumberOfBytesToRead)] BYTE *Buffer,
108 [out] DWORD *NumberOfBytesRead,
109 [out] DWORD *MinNumberOfBytesNeeded);
110
111 /* Function 11 */
112 NTSTATUS ElfrReportEventW(
113 [in] IELF_HANDLE LogHandle,
114 [in] DWORD Time,
115 [in] USHORT EventType,
116 [in] USHORT EventCategory,
117 [in] DWORD EventID,
118 [in, range(0, 256)] USHORT NumStrings,
119 [in, range(0, 61440)] DWORD DataSize,
120 [in] PRPC_UNICODE_STRING ComputerName,
121 [in, unique] PRPC_SID UserSID,
122 [in, size_is(NumStrings), unique] PRPC_UNICODE_STRING Strings[*],
123 [in, size_is(DataSize), unique] BYTE *Data,
124 [in] USHORT Flags,
125 [in, out, unique] DWORD *RecordNumber,
126 [in, out, unique] DWORD *TimeWritten);
127
128 /* Function 12 */
129 NTSTATUS ElfrClearELFA(
130 [in] IELF_HANDLE LogHandle,
131 [in, unique] PRPC_STRING BackupFileName);
132
133 /* Function 13 */
134 NTSTATUS ElfrBackupELFA(
135 [in] IELF_HANDLE LogHandle,
136 [in, unique] PRPC_STRING BackupFileName);
137
138 /* Function 14 */
139 NTSTATUS ElfrOpenELA(
140 [in, unique] EVENTLOG_HANDLE_A UNCServerName, /* FIXME */
141 [in] PRPC_STRING ModuleName,
142 [in] PRPC_STRING RegModuleName,
143 [in] DWORD MajorVersion,
144 [in] DWORD MinorVersion,
145 [out] IELF_HANDLE* LogHandle);
146
147 /* Function 15 */
148 NTSTATUS ElfrRegisterEventSourceA(
149 [in, unique] EVENTLOG_HANDLE_A UNCServerName, /* FIXME */
150 [in] PRPC_STRING ModuleName,
151 [in] PRPC_STRING RegModuleName,
152 [in] DWORD MajorVersion,
153 [in] DWORD MinorVersion,
154 [out] IELF_HANDLE* LogHandle);
155
156 /* Function 16 */
157 NTSTATUS ElfrOpenBELA(
158 [in, unique] EVENTLOG_HANDLE_A UNCServerName, /* FIXME */
159 [in] PRPC_STRING BackupFileName,
160 [in] DWORD MajorVersion,
161 [in] DWORD MinorVersion,
162 [out] IELF_HANDLE* LogHandle);
163
164 /* Function 17 */
165 NTSTATUS ElfrReadELA(
166 [in] IELF_HANDLE LogHandle,
167 [in] DWORD ReadFlags,
168 [in] DWORD RecordOffset,
169 [in] RULONG NumberOfBytesToRead,
170 [out, size_is(NumberOfBytesToRead)] BYTE *Buffer,
171 [out] DWORD *NumberOfBytesRead,
172 [out] DWORD *MinNumberOfBytesNeeded);
173
174 /* Function 18 */
175 NTSTATUS ElfrReportEventA(
176 [in] IELF_HANDLE LogHandle,
177 [in] DWORD Time,
178 [in] USHORT EventType,
179 [in] USHORT EventCategory,
180 [in] DWORD EventID,
181 [in, range(0, 256)] USHORT NumStrings,
182 [in, range(0, 61440)] DWORD DataSize,
183 [in] PRPC_STRING ComputerName,
184 [in, unique] PRPC_SID UserSID,
185 [in, size_is(NumStrings), unique] PRPC_STRING Strings[*],
186 [in, size_is(DataSize), unique] BYTE *Data,
187 [in] USHORT Flags,
188 [in, out, unique] DWORD *RecordNumber,
189 [in, out, unique] DWORD *TimeWritten);
190
191 /* Function 19 */
192 NTSTATUS ElfrRegisterClusterSvc(
193 #ifndef __midl
194 [in] handle_t BindingHandle
195 #endif
196 ); /* FIXME */
197
198 /* Function 20 */
199 NTSTATUS ElfrDeregisterClusterSvc(
200 #ifndef __midl
201 [in] handle_t BindingHandle
202 #endif
203 ); /* FIXME */
204
205 /* Function 21 */
206 NTSTATUS ElfrWriteClusterEvents(
207 #ifndef __midl
208 [in] handle_t BindingHandle
209 #endif
210 ); /* FIXME */
211
212 /* Function 22 */
213 NTSTATUS ElfrGetLogInformation(
214 [in] IELF_HANDLE LogHandle,
215 [in] DWORD InfoLevel,
216 [out, size_is(cbBufSize)] BYTE *Buffer,
217 [in, range(0, 1024)] DWORD cbBufSize,
218 [out] DWORD *pcbBytesNeeded);
219
220 /* Function 23 */
221 NTSTATUS ElfrFlushEL(
222 [in] IELF_HANDLE LogHandle);
223
224 /* Function 24 */
225 NTSTATUS ElfrReportEventAndSourceW(
226 [in] IELF_HANDLE LogHandle,
227 [in] DWORD Time,
228 [in] USHORT EventType,
229 [in] USHORT EventCategory,
230 [in] ULONG EventID,
231 [in] PRPC_UNICODE_STRING SourceName,
232 [in, range(0, 256)] USHORT NumStrings,
233 [in, range(0, 61440)] DWORD DataSize,
234 [in] PRPC_UNICODE_STRING ComputerName,
235 [in, unique] PRPC_SID UserSID,
236 [in, size_is(NumStrings), unique] PRPC_UNICODE_STRING Strings[*],
237 [in, size_is(DataSize), unique] BYTE *Data,
238 [in] USHORT Flags,
239 [in, out, unique] DWORD *RecordNumber,
240 [in, out, unique] DWORD *TimeWritten);
241 }