-revert janderwalds change until because it breaks the gcc 4.x build
[reactos.git] / reactos / base / services / eventlog / rpc.c
1 /*
2 * PROJECT: ReactOS kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: services/eventlog/rpc.c
5 * PURPOSE: Event logging service
6 * COPYRIGHT: Copyright 2005 Saveliy Tretiakov
7 */
8
9 #include "eventlog.h"
10 #ifdef RPC_ENABLED
11
12 DWORD STDCALL RpcThreadRoutine(LPVOID lpParameter)
13 {
14 RPC_STATUS Status;
15
16 Status = RpcServerUseProtseqEpW(L"ncacn_np",
17 20,
18 L"\\pipe\\EventLog",
19 NULL);
20 if(Status != RPC_S_OK)
21 {
22 DPRINT("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
23 return 0;
24 }
25
26 Status = RpcServerRegisterIf(eventlog_ServerIfHandle, NULL, NULL);
27
28 if(Status != RPC_S_OK)
29 {
30 DPRINT("RpcServerRegisterIf() failed (Status %lx)\n", Status);
31 return 0;
32 }
33
34 Status = RpcServerListen(1, RPC_C_LISTEN_MAX_CALLS_DEFAULT, FALSE);
35
36 if(Status != RPC_S_OK)
37 {
38 DPRINT("RpcServerListen() failed (Status %lx)\n", Status);
39 }
40
41 return 0;
42 }
43
44 /* Function 0 */
45 NTSTATUS ElfrClearELFW(
46 /* [in] */ LOGHANDLE Handle,
47 /* [in] */ PUNICODE_STRING BackupName)
48 {
49 DPRINT("UNIMPLEMENTED");
50 return STATUS_NOT_IMPLEMENTED;
51 }
52
53 /* Function 1 */
54 NTSTATUS ElfrBackupELFW(
55 /* [in] */ LOGHANDLE Handle,
56 /* [in] */ PUNICODE_STRING BackupName)
57 {
58 DPRINT("UNIMPLEMENTED");
59 return STATUS_NOT_IMPLEMENTED;
60 }
61
62
63 /* Function 2 */
64 NTSTATUS ElfrCloseEL(
65 /* [out][in] */ PLOGHANDLE Handle)
66 {
67 DPRINT("UNIMPLEMENTED");
68 return STATUS_NOT_IMPLEMENTED;
69 }
70
71
72 /* Function 3 */
73 NTSTATUS ElfrDeregisterEventSource(
74 /* [out][in] */ PLOGHANDLE Handle)
75 {
76 DPRINT("UNIMPLEMENTED");
77 return STATUS_NOT_IMPLEMENTED;
78 }
79
80
81 /* Function 4 */
82 NTSTATUS ElfrNumberOfRecords(
83 /* [in] */ LOGHANDLE Handle,
84 /* [out] */ long __RPC_FAR *NumberOfRecords)
85 {
86 DPRINT("UNIMPLEMENTED");
87 return STATUS_NOT_IMPLEMENTED;
88 }
89
90
91 /* Function 5 */
92 NTSTATUS ElfrOldestRecord(
93 /* [in] */ LOGHANDLE LogHandle,
94 /* [out] */ long __RPC_FAR *OldestRecNumber)
95 {
96 DPRINT("EventLogGetOldestRec UNIMPLEMENTED\n");
97 return STATUS_NOT_IMPLEMENTED;
98 }
99
100
101 /* Function 6 */
102 NTSTATUS ElfrChangeNotify( void)
103 {
104 DPRINT("EventLogChangeNotify UNIMPLEMENTED\n");
105 return STATUS_NOT_IMPLEMENTED;
106 }
107
108
109 /* Function 7 */
110 NTSTATUS ElfrOpenELW(
111 /* [unique][in] */ LPWSTR ServerName,
112 /* [in] */ PUNICODE_STRING FileName,
113 /* [in] */ PUNICODE_STRING NullStr,
114 /* [in] */ long MajorVer,
115 /* [in] */ long MinorVer,
116 /* [out] */ PLOGHANDLE Handle)
117 {
118 DPRINT("EventLogOpenW UNIMPLEMENTED\n");
119 return STATUS_NOT_IMPLEMENTED;
120 }
121
122
123 /* Function 8 */
124 NTSTATUS ElfrRegisterEventSourceA(
125 /* [unique][in] */ LPSTR ServerName,
126 /* [in] */ PANSI_STRING LogName,
127 /* [in] */ PANSI_STRING NullStr,
128 /* [in] */ long MajorVer,
129 /* [in] */ long MinorVer,
130 /* [out] */ PLOGHANDLE Handle)
131 {
132 DPRINT("EventLogRegSrcW UNIMPLEMENTED\n");
133 return STATUS_NOT_IMPLEMENTED;
134 }
135
136
137 /* Function 9 */
138 NTSTATUS ElfrOpenBELW(
139 /* [unique][in] */ LPWSTR ServerName,
140 /* [in] */ PUNICODE_STRING BackupName,
141 /* [in] */ long MajorVer,
142 /* [in] */ long MinorVer,
143 /* [out] */ PLOGHANDLE Handle)
144 {
145 DPRINT("EventLogOpenBackupW UNIMPLEMENTED\n");
146 return STATUS_NOT_IMPLEMENTED;
147 }
148
149
150 /* Function 10 */
151 NTSTATUS ElfrReadELW(
152 /* [in] */ LOGHANDLE Handle,
153 /* [in] */ long Flags,
154 /* [in] */ long Offset,
155 /* [in] */ long BufSize,
156 /* [size_is][out] */ unsigned char __RPC_FAR *Buffer,
157 /* [out] */ long __RPC_FAR *BytesRead,
158 /* [out] */ long __RPC_FAR *BytesNeeded)
159 {
160 DPRINT("EventLogReadW UNIMPLEMENTED\n");
161 return STATUS_NOT_IMPLEMENTED;
162 }
163
164
165 /* Function 11 */
166 NTSTATUS ElfrReportEventW(
167 /* [in] */ LOGHANDLE Handle,
168 /* [in] */ long Time,
169 /* [in] */ short Type,
170 /* [in] */ short Category,
171 /* [in] */ long ID,
172 /* [in] */ short NumStrings,
173 /* [in] */ long DataSize,
174 /* [in] */ PUNICODE_STRING ComputerName,
175 /* [unique][in] */ unsigned char __RPC_FAR *SID,
176 /* [unique][size_is][in] */ PUNICODE_STRING __RPC_FAR Strings[ ],
177 /* [unique][size_is][in] */ unsigned char __RPC_FAR *Data,
178 /* [in] */ short Flags,
179 /* [unique][out][in] */ long __RPC_FAR *unknown1,
180 /* [unique][out][in] */ long __RPC_FAR *unknown2)
181 {
182 DPRINT("EventLogReportEventW UNIMPLEMENTED\n");
183 return STATUS_NOT_IMPLEMENTED;
184 }
185
186
187 /* Function 12 */
188 NTSTATUS ElfrClearELFA(
189 /* [in] */ LOGHANDLE Handle,
190 /* [unique][in] */ PANSI_STRING BackupName)
191 {
192 DPRINT("EventLogClearA UNIMPLEMENTED\n");
193 return STATUS_NOT_IMPLEMENTED;
194 }
195
196
197 /* Function 13 */
198 NTSTATUS ElfrBackupELFA(
199 /* [in] */ LOGHANDLE Handle,
200 /* [in] */ PANSI_STRING BackupName)
201 {
202 DPRINT("EventLogBackupA UNIMPLEMENTED\n");
203 return STATUS_NOT_IMPLEMENTED;
204 }
205
206
207 /* Function 14 */
208 NTSTATUS ElfrOpenELA(
209 /* [unique][in] */ LPSTR ServerName,
210 /* [in] */ PANSI_STRING LogName,
211 /* [in] */ PANSI_STRING NullStr,
212 /* [in] */ long MajorVer,
213 /* [in] */ long MinorVer,
214 /* [out] */ PLOGHANDLE Handle)
215 {
216 UNICODE_STRING logname = {0}, servername={0}, StrNull = {0};
217 NTSTATUS status;
218
219 if(LogName && !RtlCreateUnicodeStringFromAsciiz(&logname, LogName))
220 {
221 return STATUS_NO_MEMORY;
222 }
223
224 if(ServerName &&
225 !RtlCreateUnicodeStringFromAsciiz(&servername, ServerName))
226 {
227 RtlFreeUnicodeString(&servername);
228 return STATUS_NO_MEMORY;
229 }
230
231 status = EventLogOpenW(
232 servername.Buffer,
233 logname.Buffer,
234 StrNull,
235 MajorVer,
236 MinorVer,
237 Handle);
238
239 RtlFreeUnicodeString(&servername);
240 RtlFreeUnicodeString(&logname);
241
242 return status;
243 }
244
245
246 /* Function 15 */
247 NTSTATUS ElfrRegisterEventSourceA(
248 /* [unique][in] */ LPSTR ServerName,
249 /* [in] */ PANSI_STRING LogName,
250 /* [in] */ PANSI_STRING NullStr,
251 /* [in] */ long MajorVer,
252 /* [in] */ long MinorVer,
253 /* [out] */ PLOGHANDLE Handle)
254 {
255 DPRINT("EventLogRegSrcA UNIMPLEMENTED\n");
256 return STATUS_NOT_IMPLEMENTED;
257 }
258
259
260 /* Function 16 */
261 NTSTATUS ElfrOpenBELA(
262 /* [unique][in] */ LPSTR ServerName,
263 /* [in] */ PANSI_STRING BakckupName,
264 /* [in] */ long MajorVer,
265 /* [in] */ long MinorVer,
266 /* [out] */ PLOGHANDLE Handle)
267 {
268 DPRINT("EventLogOpenBackupA UNIMPLEMENTED\n");
269 return STATUS_NOT_IMPLEMENTED;
270 }
271
272
273 /* Function 17 */
274 NTSTATUS ElfrReadELA(
275 /* [in] */ LOGHANDLE Handle,
276 /* [in] */ long Flags,
277 /* [in] */ long Offset,
278 /* [in] */ long BufSize,
279 /* [size_is][out] */ unsigned char __RPC_FAR *Buffer,
280 /* [out] */ long __RPC_FAR *BytesRead,
281 /* [out] */ long __RPC_FAR *BytesNeeded)
282 {
283 DPRINT("EventLogReadA UNIMPLEMENTED\n");
284 return STATUS_NOT_IMPLEMENTED;
285 }
286
287
288 /* Function 18 */
289 NTSTATUS ElfrReportEventA(
290 /* [in] */ LOGHANDLE Handle,
291 /* [in] */ long Time,
292 /* [in] */ short Type,
293 /* [in] */ short Category,
294 /* [in] */ long ID,
295 /* [in] */ short NumStrings,
296 /* [in] */ long DataSize,
297 /* [in] */ PANSI_STRING ComputerName,
298 /* [unique][in] */ unsigned char __RPC_FAR *SID,
299 /* [unique][size_is][in] */ PANSI_STRING __RPC_FAR Strings[ ],
300 /* [unique][size_is][in] */ unsigned char __RPC_FAR *Data,
301 /* [in] */ short Flags,
302 /* [unique][out][in] */ long __RPC_FAR *unknown1,
303 /* [unique][out][in] */ long __RPC_FAR *unknown2)
304 {
305 DPRINT("EventLogReportEventA UNIMPLEMENTED\n");
306 return STATUS_NOT_IMPLEMENTED;
307 }
308
309
310 /* Function 19 */
311 NTSTATUS ElfrRegisterClusterSvc( void)
312 {
313 DPRINT("EventLogRegisterClusterSvc UNIMPLEMENTED\n");
314 return STATUS_NOT_IMPLEMENTED;
315 }
316
317
318 /* Function 20 */
319 NTSTATUS ElfrDeregisterClusterSvc( void)
320 {
321 DPRINT("EventLogDeregisterClusterSvc UNIMPLEMENTED\n");
322 return STATUS_NOT_IMPLEMENTED;
323 }
324
325
326 /* Function 21 */
327 NTSTATUS ElfrWriteClusterEvents( void)
328 {
329 DPRINT("EventLogWriteClusterEvents UNIMPLEMENTED\n");
330 return STATUS_NOT_IMPLEMENTED;
331 }
332
333
334 /* Function 22 */
335 NTSTATUS ElfrGetLogInformation(
336 /* [in] */ LOGHANDLE Handle,
337 /* [in] */ long InfoLevel,
338 /* [size_is][out] */ unsigned char __RPC_FAR *Buffer,
339 /* [in] */ long BufSize,
340 /* [out] */ long __RPC_FAR *BytesNeeded)
341 {
342 DPRINT("EventLogGetInfo UNIMPLEMENTED\n");
343 return STATUS_NOT_IMPLEMENTED;
344 }
345
346
347 /* Function 23 */
348 NTSTATUS ElfrFlushEL(
349 /* [in] */ LOGHANDLE Handle)
350 {
351 DbgPrint("EventLogFlush UNIMPLEMENTED\n");
352 return STATUS_NOT_IMPLEMENTED;
353 }
354
355 #else
356 void func(handle_t h){}
357 #endif // RPC_ENABLED
358
359 void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len)
360 {
361 return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
362 }
363
364
365 void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
366 {
367 HeapFree(GetProcessHeap(), 0, ptr);
368 }
369
370