r18623: starting on eventlog IDL
authorGerald Carter <jerry@samba.org>
Mon, 18 Sep 2006 19:46:11 +0000 (19:46 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:52:01 +0000 (11:52 -0500)
(This used to be commit 6cb7b6226da0b3060f4850fc2cc2ca82fbdcaa8f)

source3/Makefile.in
source3/include/rpc_eventlog.h
source3/include/smb.h
source3/librpc/gen_ndr/cli_eventlog.c [new file with mode: 0644]
source3/librpc/gen_ndr/cli_eventlog.h [new file with mode: 0644]
source3/librpc/gen_ndr/eventlog.h [new file with mode: 0644]
source3/librpc/gen_ndr/ndr_eventlog.c [new file with mode: 0644]
source3/librpc/gen_ndr/ndr_eventlog.h [new file with mode: 0644]
source3/librpc/gen_ndr/srv_eventlog.c [new file with mode: 0644]
source3/librpc/gen_ndr/srv_eventlog.h [new file with mode: 0644]
source3/librpc/idl/eventlog.idl

index 329e9c9d5135bdb3ee0aa86b7a64590be46ab905..a73da33eec8b69cc507ff26647b5a42f5f3b628d 100644 (file)
@@ -214,7 +214,8 @@ LIBNDR_OBJ = librpc/ndr/ndr_basic.o librpc/ndr/ndr.o librpc/ndr/ndr_misc.o \
 
 LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_unixinfo.o librpc/gen_ndr/ndr_lsa.o \
                 librpc/gen_ndr/ndr_dfs.o librpc/gen_ndr/ndr_echo.o \
-                librpc/gen_ndr/ndr_winreg.o librpc/gen_ndr/ndr_initshutdown.o
+                librpc/gen_ndr/ndr_winreg.o librpc/gen_ndr/ndr_initshutdown.o \
+                librpc/gen_ndr/ndr_eventlog.o
 
 RPC_PARSE_OBJ0 = rpc_parse/parse_prs.o rpc_parse/parse_misc.o
 
@@ -299,8 +300,9 @@ LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
               rpc_client/ndr.o
 
 LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_unixinfo.o librpc/gen_ndr/cli_lsa.o \
-                                  librpc/gen_ndr/cli_dfs.o librpc/gen_ndr/cli_echo.o \
+                  librpc/gen_ndr/cli_dfs.o librpc/gen_ndr/cli_echo.o \
                   librpc/gen_ndr/cli_winreg.o librpc/gen_ndr/cli_initshutdown.o \
+                  librpc/gen_ndr/cli_eventlog.o \
                   $(LIBMSRPC_GEN_OBJ1) $(LIBNDR_GEN_OBJ) $(LIBNDR_OBJ)
 
 REGOBJS_OBJ = registry/reg_objects.o
@@ -847,7 +849,8 @@ cac: SHOWFLAGS $(LIBMSRPC)
 
 #####################################################################
 ## Perl IDL Compiler
-IDL_FILES = unixinfo.idl lsa.idl dfs.idl echo.idl winreg.idl initshutdown.idl
+IDL_FILES = unixinfo.idl lsa.idl dfs.idl echo.idl winreg.idl initshutdown.idl \
+           eventlog.idl
 
 idl: 
        @IDL_FILES="$(IDL_FILES)" CPP="$(CPP)" PERL="$(PERL)" \
index 5bede97d1c9ca5886e8b736ac96cb3f19a729913..94a5915292c81c099ab7e2a566f0e12ac93e85f0 100644 (file)
 #define EVENTLOG_READEVENTLOG          0x0a
 
 /* Eventlog read flags */
-
-#define EVENTLOG_SEQUENTIAL_READ      0x0001
-#define EVENTLOG_SEEK_READ            0x0002
-#define EVENTLOG_FORWARDS_READ        0x0004
-#define EVENTLOG_BACKWARDS_READ       0x0008
+/* defined in librpc/gen_ndr/eventlog.h */
 
 /* Event types */
-
-#define EVENTLOG_SUCCESS              0x0000
-#define EVENTLOG_ERROR_TYPE           0x0001
-#define EVENTLOG_WARNING_TYPE         0x0002
-#define EVENTLOG_INFORMATION_TYPE     0x0004
-#define EVENTLOG_AUDIT_SUCCESS        0x0008
-#define EVENTLOG_AUDIT_FAILURE        0x0010
+/* defined in librpc/gen_ndr/eventlog.h */
 
 /* Defines for TDB keys */
 #define  EVT_OLDEST_ENTRY  "INFO/oldest_entry"
index a219cdae6f0626146eca93e02264a62b9d681fce..78ef2b693e0de9767239f356cd998e6f2012e7cd 100644 (file)
@@ -284,6 +284,7 @@ typedef struct dom_sid {
 #include "librpc/gen_ndr/dfs.h"
 #include "librpc/gen_ndr/initshutdown.h"
 #include "librpc/gen_ndr/winreg.h"
+#include "librpc/gen_ndr/eventlog.h"
 
 struct lsa_dom_info {
        BOOL valid;
diff --git a/source3/librpc/gen_ndr/cli_eventlog.c b/source3/librpc/gen_ndr/cli_eventlog.c
new file mode 100644 (file)
index 0000000..606a531
--- /dev/null
@@ -0,0 +1,436 @@
+/*
+ * Unix SMB/CIFS implementation.
+ * client auto-generated by pidl. DO NOT MODIFY!
+ */
+
+#include "includes.h"
+#include "librpc/gen_ndr/cli_eventlog.h"
+
+NTSTATUS rpccli_eventlog_ClearEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle, struct lsa_String *unknown)
+{
+       struct eventlog_ClearEventLogW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       r.in.handle = handle;
+       r.in.unknown = unknown;
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_CLEAREVENTLOGW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ClearEventLogW, (ndr_push_flags_fn_t)ndr_push_eventlog_ClearEventLogW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_BackupEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_BackupEventLogW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_BACKUPEVENTLOGW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_BackupEventLogW, (ndr_push_flags_fn_t)ndr_push_eventlog_BackupEventLogW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_CloseEventLog(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle)
+{
+       struct eventlog_CloseEventLog r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       r.in.handle = handle;
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_CLOSEEVENTLOG, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_CloseEventLog, (ndr_push_flags_fn_t)ndr_push_eventlog_CloseEventLog);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       *handle = *r.out.handle;
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_DeregisterEventSource(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_DeregisterEventSource r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_DEREGISTEREVENTSOURCE, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_DeregisterEventSource, (ndr_push_flags_fn_t)ndr_push_eventlog_DeregisterEventSource);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_GetNumRecords(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle, uint32_t *number)
+{
+       struct eventlog_GetNumRecords r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       r.in.handle = handle;
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_GETNUMRECORDS, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_GetNumRecords, (ndr_push_flags_fn_t)ndr_push_eventlog_GetNumRecords);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       *number = *r.out.number;
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_GetOldestRecord(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_GetOldestRecord r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_GETOLDESTRECORD, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_GetOldestRecord, (ndr_push_flags_fn_t)ndr_push_eventlog_GetOldestRecord);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_ChangeNotify(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_ChangeNotify r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_CHANGENOTIFY, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ChangeNotify, (ndr_push_flags_fn_t)ndr_push_eventlog_ChangeNotify);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_OpenEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct eventlog_OpenUnknown0 *unknown0, struct lsa_String logname, struct lsa_String servername, uint32_t unknown2, uint32_t unknown3, struct policy_handle *handle)
+{
+       struct eventlog_OpenEventLogW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       r.in.unknown0 = unknown0;
+       r.in.logname = logname;
+       r.in.servername = servername;
+       r.in.unknown2 = unknown2;
+       r.in.unknown3 = unknown3;
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_OPENEVENTLOGW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_OpenEventLogW, (ndr_push_flags_fn_t)ndr_push_eventlog_OpenEventLogW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       *handle = *r.out.handle;
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_RegisterEventSourceW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_RegisterEventSourceW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_REGISTEREVENTSOURCEW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_RegisterEventSourceW, (ndr_push_flags_fn_t)ndr_push_eventlog_RegisterEventSourceW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_OpenBackupEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_OpenBackupEventLogW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_OPENBACKUPEVENTLOGW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_OpenBackupEventLogW, (ndr_push_flags_fn_t)ndr_push_eventlog_OpenBackupEventLogW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_ReadEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle, uint32_t flags, uint32_t offset, uint32_t number_of_bytes, uint8_t *data, uint32_t *sent_size, uint32_t *real_size)
+{
+       struct eventlog_ReadEventLogW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       r.in.handle = handle;
+       r.in.flags = flags;
+       r.in.offset = offset;
+       r.in.number_of_bytes = number_of_bytes;
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_READEVENTLOGW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ReadEventLogW, (ndr_push_flags_fn_t)ndr_push_eventlog_ReadEventLogW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       *data = *r.out.data;
+       *sent_size = *r.out.sent_size;
+       *real_size = *r.out.real_size;
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_ReportEventW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_ReportEventW r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_REPORTEVENTW, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ReportEventW, (ndr_push_flags_fn_t)ndr_push_eventlog_ReportEventW);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_ClearEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_ClearEventLogA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_CLEAREVENTLOGA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ClearEventLogA, (ndr_push_flags_fn_t)ndr_push_eventlog_ClearEventLogA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_BackupEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_BackupEventLogA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_BACKUPEVENTLOGA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_BackupEventLogA, (ndr_push_flags_fn_t)ndr_push_eventlog_BackupEventLogA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_OpenEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_OpenEventLogA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_OPENEVENTLOGA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_OpenEventLogA, (ndr_push_flags_fn_t)ndr_push_eventlog_OpenEventLogA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_RegisterEventSourceA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_RegisterEventSourceA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_REGISTEREVENTSOURCEA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_RegisterEventSourceA, (ndr_push_flags_fn_t)ndr_push_eventlog_RegisterEventSourceA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_OpenBackupEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_OpenBackupEventLogA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_OPENBACKUPEVENTLOGA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_OpenBackupEventLogA, (ndr_push_flags_fn_t)ndr_push_eventlog_OpenBackupEventLogA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_ReadEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_ReadEventLogA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_READEVENTLOGA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ReadEventLogA, (ndr_push_flags_fn_t)ndr_push_eventlog_ReadEventLogA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_ReportEventA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_ReportEventA r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_REPORTEVENTA, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_ReportEventA, (ndr_push_flags_fn_t)ndr_push_eventlog_ReportEventA);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_RegisterClusterSvc(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_RegisterClusterSvc r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_REGISTERCLUSTERSVC, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_RegisterClusterSvc, (ndr_push_flags_fn_t)ndr_push_eventlog_RegisterClusterSvc);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_DeregisterClusterSvc(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_DeregisterClusterSvc r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_DEREGISTERCLUSTERSVC, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_DeregisterClusterSvc, (ndr_push_flags_fn_t)ndr_push_eventlog_DeregisterClusterSvc);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_WriteClusterEvents(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_WriteClusterEvents r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_WRITECLUSTEREVENTS, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_WriteClusterEvents, (ndr_push_flags_fn_t)ndr_push_eventlog_WriteClusterEvents);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_GetLogIntormation(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx)
+{
+       struct eventlog_GetLogIntormation r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_GETLOGINTORMATION, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_GetLogIntormation, (ndr_push_flags_fn_t)ndr_push_eventlog_GetLogIntormation);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
+NTSTATUS rpccli_eventlog_FlushEventLog(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle)
+{
+       struct eventlog_FlushEventLog r;
+       NTSTATUS status;
+       
+       /* In parameters */
+       r.in.handle = handle;
+       status = cli_do_rpc_ndr(cli, mem_ctx, PI_EVENTLOG, DCERPC_EVENTLOG_FLUSHEVENTLOG, &r, (ndr_pull_flags_fn_t)ndr_pull_eventlog_FlushEventLog, (ndr_push_flags_fn_t)ndr_push_eventlog_FlushEventLog);
+       if (NT_STATUS_IS_ERR(status)) {
+               return status;
+       }
+       
+       /* Return variables */
+       
+       /* Return result */
+       return r.out.result;
+}
+
diff --git a/source3/librpc/gen_ndr/cli_eventlog.h b/source3/librpc/gen_ndr/cli_eventlog.h
new file mode 100644 (file)
index 0000000..9024641
--- /dev/null
@@ -0,0 +1,28 @@
+#include "librpc/gen_ndr/ndr_eventlog.h"
+#ifndef __CLI_EVENTLOG__
+#define __CLI_EVENTLOG__
+NTSTATUS rpccli_eventlog_ClearEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle, struct lsa_String *unknown);
+NTSTATUS rpccli_eventlog_BackupEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_CloseEventLog(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle);
+NTSTATUS rpccli_eventlog_DeregisterEventSource(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_GetNumRecords(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle, uint32_t *number);
+NTSTATUS rpccli_eventlog_GetOldestRecord(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_ChangeNotify(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_OpenEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct eventlog_OpenUnknown0 *unknown0, struct lsa_String logname, struct lsa_String servername, uint32_t unknown2, uint32_t unknown3, struct policy_handle *handle);
+NTSTATUS rpccli_eventlog_RegisterEventSourceW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_OpenBackupEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_ReadEventLogW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle, uint32_t flags, uint32_t offset, uint32_t number_of_bytes, uint8_t *data, uint32_t *sent_size, uint32_t *real_size);
+NTSTATUS rpccli_eventlog_ReportEventW(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_ClearEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_BackupEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_OpenEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_RegisterEventSourceA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_OpenBackupEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_ReadEventLogA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_ReportEventA(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_RegisterClusterSvc(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_DeregisterClusterSvc(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_WriteClusterEvents(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_GetLogIntormation(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_eventlog_FlushEventLog(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, struct policy_handle *handle);
+#endif /* __CLI_EVENTLOG__ */
diff --git a/source3/librpc/gen_ndr/eventlog.h b/source3/librpc/gen_ndr/eventlog.h
new file mode 100644 (file)
index 0000000..eb338e9
--- /dev/null
@@ -0,0 +1,280 @@
+/* header auto-generated by pidl */
+
+#ifndef _HEADER_eventlog
+#define _HEADER_eventlog
+
+#include "librpc/gen_ndr/lsa.h"
+#include "librpc/gen_ndr/security.h"
+/* bitmap eventlogReadFlags */
+#define EVENTLOG_SEQUENTIAL_READ ( 0x0001 )
+#define EVENTLOG_SEEK_READ ( 0x0002 )
+#define EVENTLOG_FORWARDS_READ ( 0x0004 )
+#define EVENTLOG_BACKWARDS_READ ( 0x0008 )
+
+/* bitmap eventlogEventTypes */
+#define EVENTLOG_SUCCESS ( 0x0000 )
+#define EVENTLOG_ERROR_TYPE ( 0x0001 )
+#define EVENTLOG_WARNING_TYPE ( 0x0002 )
+#define EVENTLOG_INFORMATION_TYPE ( 0x0004 )
+#define EVENTLOG_AUDIT_SUCCESS ( 0x0008 )
+#define EVENTLOG_AUDIT_FAILURE ( 0x0010 )
+
+struct eventlog_OpenUnknown0 {
+       uint16_t unknown0;/* [keepref] */
+       uint16_t unknown1;/* [keepref] */
+};
+
+struct eventlog_Record {
+       uint32_t size;/* [keepref] */
+       uint32_t reserved;/* [keepref] */
+       uint32_t record_number;/* [keepref] */
+       uint32_t time_generated;/* [keepref] */
+       uint32_t time_written;/* [keepref] */
+       uint32_t event_id;/* [keepref] */
+       uint16_t event_type;/* [keepref] */
+       uint16_t num_of_strings;/* [keepref] */
+       uint16_t event_category;/* [keepref] */
+       uint16_t reserved_flags;/* [keepref] */
+       uint32_t closing_record_number;/* [keepref] */
+       uint32_t stringoffset;/* [keepref] */
+       uint32_t sid_length;/* [keepref] */
+       uint32_t sid_offset;/* [keepref] */
+       uint32_t data_length;/* [keepref] */
+       uint32_t data_offset;/* [keepref] */
+       const char * source_name;/* [keepref,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * computer_name;/* [keepref,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * *strings;/* [keepref,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char * raw_data;/* [keepref,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
+}/* [public] */;
+
+
+struct eventlog_ClearEventLogW {
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+               struct lsa_String *unknown;/* [unique,keepref] */
+       } in;
+
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_BackupEventLogW {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_CloseEventLog {
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+       } in;
+
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_DeregisterEventSource {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_GetNumRecords {
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+       } in;
+
+       struct {
+               uint32_t *number;/* [keepref,ref] */
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_GetOldestRecord {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_ChangeNotify {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_OpenEventLogW {
+       struct {
+               struct eventlog_OpenUnknown0 *unknown0;/* [unique,keepref] */
+               struct lsa_String logname;/* [keepref] */
+               struct lsa_String servername;/* [keepref] */
+               uint32_t unknown2;/* [keepref] */
+               uint32_t unknown3;/* [keepref] */
+       } in;
+
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_RegisterEventSourceW {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_OpenBackupEventLogW {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_ReadEventLogW {
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+               uint32_t flags;/* [keepref] */
+               uint32_t offset;/* [keepref] */
+               uint32_t number_of_bytes;/* [keepref] */
+       } in;
+
+       struct {
+               uint8_t *data;/* [keepref,ref,size_is(number_of_bytes)] */
+               uint32_t *sent_size;/* [keepref,ref] */
+               uint32_t *real_size;/* [keepref,ref] */
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_ReportEventW {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_ClearEventLogA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_BackupEventLogA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_OpenEventLogA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_RegisterEventSourceA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_OpenBackupEventLogA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_ReadEventLogA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_ReportEventA {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_RegisterClusterSvc {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_DeregisterClusterSvc {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_WriteClusterEvents {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_GetLogIntormation {
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+
+struct eventlog_FlushEventLog {
+       struct {
+               struct policy_handle *handle;/* [keepref,ref] */
+       } in;
+
+       struct {
+               NTSTATUS result;
+       } out;
+
+};
+
+#endif /* _HEADER_eventlog */
diff --git a/source3/librpc/gen_ndr/ndr_eventlog.c b/source3/librpc/gen_ndr/ndr_eventlog.c
new file mode 100644 (file)
index 0000000..dc29a2a
--- /dev/null
@@ -0,0 +1,1644 @@
+/* parser auto-generated by pidl */
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_eventlog.h"
+
+#include "librpc/gen_ndr/ndr_lsa.h"
+#include "librpc/gen_ndr/ndr_security.h"
+NTSTATUS ndr_push_eventlog_OpenUnknown0(struct ndr_push *ndr, int ndr_flags, const struct eventlog_OpenUnknown0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 2));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown0));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_OpenUnknown0(struct ndr_pull *ndr, int ndr_flags, struct eventlog_OpenUnknown0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 2));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown0));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown1));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_OpenUnknown0(struct ndr_print *ndr, const char *name, const struct eventlog_OpenUnknown0 *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_OpenUnknown0");
+       ndr->depth++;
+       ndr_print_uint16(ndr, "unknown0", r->unknown0);
+       ndr_print_uint16(ndr, "unknown1", r->unknown1);
+       ndr->depth--;
+}
+
+_PUBLIC_ NTSTATUS ndr_push_eventlog_Record(struct ndr_push *ndr, int ndr_flags, const struct eventlog_Record *r)
+{
+       uint32_t cntr_strings_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->record_number));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time_generated));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time_written));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->event_id));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->event_type));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_of_strings));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->event_category));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved_flags));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->closing_record_number));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->stringoffset));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sid_length));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sid_offset));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_length));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data_offset));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->source_name));
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                       for (cntr_strings_0 = 0; cntr_strings_0 < r->num_of_strings; cntr_strings_0++) {
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->strings[cntr_strings_0]));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->raw_data));
+                       ndr->flags = _flags_save_string;
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ NTSTATUS ndr_pull_eventlog_Record(struct ndr_pull *ndr, int ndr_flags, struct eventlog_Record *r)
+{
+       uint32_t cntr_strings_0;
+       TALLOC_CTX *_mem_save_strings_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->record_number));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time_generated));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time_written));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->event_id));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->event_type));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->num_of_strings));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->event_category));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved_flags));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->closing_record_number));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->stringoffset));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_length));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_offset));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_offset));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->source_name));
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_PULL_ALLOC_N(ndr, r->strings, r->num_of_strings);
+                       _mem_save_strings_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, *r->strings, 0);
+                       for (cntr_strings_0 = 0; cntr_strings_0 < r->num_of_strings; cntr_strings_0++) {
+                               NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->strings[cntr_strings_0]));
+                       }
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_strings_0, 0);
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->raw_data));
+                       ndr->flags = _flags_save_string;
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_Record(struct ndr_print *ndr, const char *name, const struct eventlog_Record *r)
+{
+       uint32_t cntr_strings_0;
+       ndr_print_struct(ndr, name, "eventlog_Record");
+       ndr->depth++;
+       ndr_print_uint32(ndr, "size", r->size);
+       ndr_print_uint32(ndr, "reserved", r->reserved);
+       ndr_print_uint32(ndr, "record_number", r->record_number);
+       ndr_print_uint32(ndr, "time_generated", r->time_generated);
+       ndr_print_uint32(ndr, "time_written", r->time_written);
+       ndr_print_uint32(ndr, "event_id", r->event_id);
+       ndr_print_uint16(ndr, "event_type", r->event_type);
+       ndr_print_uint16(ndr, "num_of_strings", r->num_of_strings);
+       ndr_print_uint16(ndr, "event_category", r->event_category);
+       ndr_print_uint16(ndr, "reserved_flags", r->reserved_flags);
+       ndr_print_uint32(ndr, "closing_record_number", r->closing_record_number);
+       ndr_print_uint32(ndr, "stringoffset", r->stringoffset);
+       ndr_print_uint32(ndr, "sid_length", r->sid_length);
+       ndr_print_uint32(ndr, "sid_offset", r->sid_offset);
+       ndr_print_uint32(ndr, "data_length", r->data_length);
+       ndr_print_uint32(ndr, "data_offset", r->data_offset);
+       ndr_print_string(ndr, "source_name", r->source_name);
+       ndr_print_string(ndr, "computer_name", r->computer_name);
+       ndr->print(ndr, "%s: ARRAY(%d)", "strings", r->num_of_strings);
+       ndr->depth++;
+       for (cntr_strings_0=0;cntr_strings_0<r->num_of_strings;cntr_strings_0++) {
+               char *idx_0=NULL;
+               asprintf(&idx_0, "[%d]", cntr_strings_0);
+               if (idx_0) {
+                       ndr_print_string(ndr, "strings", r->strings[cntr_strings_0]);
+                       free(idx_0);
+               }
+       }
+       ndr->depth--;
+       ndr_print_string(ndr, "raw_data", r->raw_data);
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ClearEventLogW(struct ndr_push *ndr, int flags, const struct eventlog_ClearEventLogW *r)
+{
+       if (flags & NDR_IN) {
+               if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown));
+               if (r->in.unknown) {
+                       NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.unknown));
+               }
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ClearEventLogW(struct ndr_pull *ndr, int flags, struct eventlog_ClearEventLogW *r)
+{
+       uint32_t _ptr_unknown;
+       TALLOC_CTX *_mem_save_handle_0;
+       TALLOC_CTX *_mem_save_unknown_0;
+       if (flags & NDR_IN) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown));
+               if (_ptr_unknown) {
+                       NDR_PULL_ALLOC(ndr, r->in.unknown);
+               } else {
+                       r->in.unknown = NULL;
+               }
+               if (r->in.unknown) {
+                       _mem_save_unknown_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0);
+                       NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.unknown));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0);
+               }
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ClearEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ClearEventLogW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ClearEventLogW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ClearEventLogW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->in.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->in.handle);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "unknown", r->in.unknown);
+               ndr->depth++;
+               if (r->in.unknown) {
+                       ndr_print_lsa_String(ndr, "unknown", r->in.unknown);
+               }
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ClearEventLogW");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_BackupEventLogW(struct ndr_push *ndr, int flags, const struct eventlog_BackupEventLogW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_BackupEventLogW(struct ndr_pull *ndr, int flags, struct eventlog_BackupEventLogW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_BackupEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_BackupEventLogW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_BackupEventLogW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_BackupEventLogW");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_BackupEventLogW");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_CloseEventLog(struct ndr_push *ndr, int flags, const struct eventlog_CloseEventLog *r)
+{
+       if (flags & NDR_IN) {
+               if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+       }
+       if (flags & NDR_OUT) {
+               if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_CloseEventLog(struct ndr_pull *ndr, int flags, struct eventlog_CloseEventLog *r)
+{
+       TALLOC_CTX *_mem_save_handle_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_PULL_ALLOC(ndr, r->out.handle);
+               *r->out.handle = *r->in.handle;
+       }
+       if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_CloseEventLog(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_CloseEventLog *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_CloseEventLog");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_CloseEventLog");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->in.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->in.handle);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_CloseEventLog");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->out.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->out.handle);
+               ndr->depth--;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_DeregisterEventSource(struct ndr_push *ndr, int flags, const struct eventlog_DeregisterEventSource *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_DeregisterEventSource(struct ndr_pull *ndr, int flags, struct eventlog_DeregisterEventSource *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_DeregisterEventSource(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_DeregisterEventSource *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_DeregisterEventSource");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_DeregisterEventSource");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_DeregisterEventSource");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_GetNumRecords(struct ndr_push *ndr, int flags, const struct eventlog_GetNumRecords *r)
+{
+       if (flags & NDR_IN) {
+               if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+       }
+       if (flags & NDR_OUT) {
+               if (r->out.number == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.number));
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_GetNumRecords(struct ndr_pull *ndr, int flags, struct eventlog_GetNumRecords *r)
+{
+       TALLOC_CTX *_mem_save_handle_0;
+       TALLOC_CTX *_mem_save_number_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_PULL_ALLOC(ndr, r->out.number);
+               ZERO_STRUCTP(r->out.number);
+       }
+       if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.number);
+               }
+               _mem_save_number_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.number, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.number));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_number_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_GetNumRecords(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_GetNumRecords *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_GetNumRecords");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_GetNumRecords");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->in.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->in.handle);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_GetNumRecords");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "number", r->out.number);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "number", *r->out.number);
+               ndr->depth--;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_GetOldestRecord(struct ndr_push *ndr, int flags, const struct eventlog_GetOldestRecord *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_GetOldestRecord(struct ndr_pull *ndr, int flags, struct eventlog_GetOldestRecord *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_GetOldestRecord(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_GetOldestRecord *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_GetOldestRecord");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_GetOldestRecord");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_GetOldestRecord");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ChangeNotify(struct ndr_push *ndr, int flags, const struct eventlog_ChangeNotify *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ChangeNotify(struct ndr_pull *ndr, int flags, struct eventlog_ChangeNotify *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ChangeNotify *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ChangeNotify");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ChangeNotify");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ChangeNotify");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_OpenEventLogW(struct ndr_push *ndr, int flags, const struct eventlog_OpenEventLogW *r)
+{
+       if (flags & NDR_IN) {
+               NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.unknown0));
+               if (r->in.unknown0) {
+                       NDR_CHECK(ndr_push_eventlog_OpenUnknown0(ndr, NDR_SCALARS, r->in.unknown0));
+               }
+               NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logname));
+               NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.servername));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown3));
+       }
+       if (flags & NDR_OUT) {
+               if (r->out.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_OpenEventLogW(struct ndr_pull *ndr, int flags, struct eventlog_OpenEventLogW *r)
+{
+       uint32_t _ptr_unknown0;
+       TALLOC_CTX *_mem_save_unknown0_0;
+       TALLOC_CTX *_mem_save_handle_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown0));
+               if (_ptr_unknown0) {
+                       NDR_PULL_ALLOC(ndr, r->in.unknown0);
+               } else {
+                       r->in.unknown0 = NULL;
+               }
+               if (r->in.unknown0) {
+                       _mem_save_unknown0_0 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown0, 0);
+                       NDR_CHECK(ndr_pull_eventlog_OpenUnknown0(ndr, NDR_SCALARS, r->in.unknown0));
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown0_0, 0);
+               }
+               NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logname));
+               NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.servername));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3));
+               NDR_PULL_ALLOC(ndr, r->out.handle);
+               ZERO_STRUCTP(r->out.handle);
+       }
+       if (flags & NDR_OUT) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_OpenEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenEventLogW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_OpenEventLogW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_OpenEventLogW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "unknown0", r->in.unknown0);
+               ndr->depth++;
+               if (r->in.unknown0) {
+                       ndr_print_eventlog_OpenUnknown0(ndr, "unknown0", r->in.unknown0);
+               }
+               ndr->depth--;
+               ndr_print_lsa_String(ndr, "logname", &r->in.logname);
+               ndr_print_lsa_String(ndr, "servername", &r->in.servername);
+               ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
+               ndr_print_uint32(ndr, "unknown3", r->in.unknown3);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_OpenEventLogW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->out.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->out.handle);
+               ndr->depth--;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_RegisterEventSourceW(struct ndr_push *ndr, int flags, const struct eventlog_RegisterEventSourceW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_RegisterEventSourceW(struct ndr_pull *ndr, int flags, struct eventlog_RegisterEventSourceW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_RegisterEventSourceW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_RegisterEventSourceW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_RegisterEventSourceW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_RegisterEventSourceW");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_RegisterEventSourceW");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_OpenBackupEventLogW(struct ndr_push *ndr, int flags, const struct eventlog_OpenBackupEventLogW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_OpenBackupEventLogW(struct ndr_pull *ndr, int flags, struct eventlog_OpenBackupEventLogW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_OpenBackupEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenBackupEventLogW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_OpenBackupEventLogW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_OpenBackupEventLogW");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_OpenBackupEventLogW");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ReadEventLogW(struct ndr_push *ndr, int flags, const struct eventlog_ReadEventLogW *r)
+{
+       if (flags & NDR_IN) {
+               if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offset));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.number_of_bytes));
+       }
+       if (flags & NDR_OUT) {
+               if (r->out.data == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.number_of_bytes));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.number_of_bytes));
+               if (r->out.sent_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sent_size));
+               if (r->out.real_size == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.real_size));
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ReadEventLogW(struct ndr_pull *ndr, int flags, struct eventlog_ReadEventLogW *r)
+{
+       TALLOC_CTX *_mem_save_handle_0;
+       TALLOC_CTX *_mem_save_sent_size_0;
+       TALLOC_CTX *_mem_save_real_size_0;
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offset));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.number_of_bytes));
+               NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.number_of_bytes);
+               memset(r->out.data, 0, r->in.number_of_bytes * sizeof(*r->out.data));
+               NDR_PULL_ALLOC(ndr, r->out.sent_size);
+               ZERO_STRUCTP(r->out.sent_size);
+               NDR_PULL_ALLOC(ndr, r->out.real_size);
+               ZERO_STRUCTP(r->out.real_size);
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
+               }
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.sent_size);
+               }
+               _mem_save_sent_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.sent_size, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sent_size));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sent_size_0, LIBNDR_FLAG_REF_ALLOC);
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->out.real_size);
+               }
+               _mem_save_real_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->out.real_size, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.real_size));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_real_size_0, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+               if (r->out.data) {
+                       NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.number_of_bytes));
+               }
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ReadEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReadEventLogW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ReadEventLogW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ReadEventLogW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->in.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->in.handle);
+               ndr->depth--;
+               ndr_print_uint32(ndr, "flags", r->in.flags);
+               ndr_print_uint32(ndr, "offset", r->in.offset);
+               ndr_print_uint32(ndr, "number_of_bytes", r->in.number_of_bytes);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ReadEventLogW");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "data", r->out.data);
+               ndr->depth++;
+               ndr_print_array_uint8(ndr, "data", r->out.data, r->in.number_of_bytes);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "sent_size", r->out.sent_size);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "sent_size", *r->out.sent_size);
+               ndr->depth--;
+               ndr_print_ptr(ndr, "real_size", r->out.real_size);
+               ndr->depth++;
+               ndr_print_uint32(ndr, "real_size", *r->out.real_size);
+               ndr->depth--;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ReportEventW(struct ndr_push *ndr, int flags, const struct eventlog_ReportEventW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ReportEventW(struct ndr_pull *ndr, int flags, struct eventlog_ReportEventW *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ReportEventW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReportEventW *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ReportEventW");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ReportEventW");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ReportEventW");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ClearEventLogA(struct ndr_push *ndr, int flags, const struct eventlog_ClearEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ClearEventLogA(struct ndr_pull *ndr, int flags, struct eventlog_ClearEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ClearEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ClearEventLogA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ClearEventLogA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ClearEventLogA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ClearEventLogA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_BackupEventLogA(struct ndr_push *ndr, int flags, const struct eventlog_BackupEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_BackupEventLogA(struct ndr_pull *ndr, int flags, struct eventlog_BackupEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_BackupEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_BackupEventLogA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_BackupEventLogA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_BackupEventLogA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_BackupEventLogA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_OpenEventLogA(struct ndr_push *ndr, int flags, const struct eventlog_OpenEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_OpenEventLogA(struct ndr_pull *ndr, int flags, struct eventlog_OpenEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_OpenEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenEventLogA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_OpenEventLogA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_OpenEventLogA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_OpenEventLogA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_RegisterEventSourceA(struct ndr_push *ndr, int flags, const struct eventlog_RegisterEventSourceA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_RegisterEventSourceA(struct ndr_pull *ndr, int flags, struct eventlog_RegisterEventSourceA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_RegisterEventSourceA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_RegisterEventSourceA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_RegisterEventSourceA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_RegisterEventSourceA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_RegisterEventSourceA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_OpenBackupEventLogA(struct ndr_push *ndr, int flags, const struct eventlog_OpenBackupEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_OpenBackupEventLogA(struct ndr_pull *ndr, int flags, struct eventlog_OpenBackupEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_OpenBackupEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenBackupEventLogA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_OpenBackupEventLogA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_OpenBackupEventLogA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_OpenBackupEventLogA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ReadEventLogA(struct ndr_push *ndr, int flags, const struct eventlog_ReadEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ReadEventLogA(struct ndr_pull *ndr, int flags, struct eventlog_ReadEventLogA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ReadEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReadEventLogA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ReadEventLogA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ReadEventLogA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ReadEventLogA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_ReportEventA(struct ndr_push *ndr, int flags, const struct eventlog_ReportEventA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_ReportEventA(struct ndr_pull *ndr, int flags, struct eventlog_ReportEventA *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_ReportEventA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReportEventA *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_ReportEventA");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_ReportEventA");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_ReportEventA");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_RegisterClusterSvc(struct ndr_push *ndr, int flags, const struct eventlog_RegisterClusterSvc *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_RegisterClusterSvc(struct ndr_pull *ndr, int flags, struct eventlog_RegisterClusterSvc *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_RegisterClusterSvc(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_RegisterClusterSvc *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_RegisterClusterSvc");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_RegisterClusterSvc");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_RegisterClusterSvc");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_DeregisterClusterSvc(struct ndr_push *ndr, int flags, const struct eventlog_DeregisterClusterSvc *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_DeregisterClusterSvc(struct ndr_pull *ndr, int flags, struct eventlog_DeregisterClusterSvc *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_DeregisterClusterSvc(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_DeregisterClusterSvc *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_DeregisterClusterSvc");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_DeregisterClusterSvc");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_DeregisterClusterSvc");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_WriteClusterEvents(struct ndr_push *ndr, int flags, const struct eventlog_WriteClusterEvents *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_WriteClusterEvents(struct ndr_pull *ndr, int flags, struct eventlog_WriteClusterEvents *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_WriteClusterEvents(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_WriteClusterEvents *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_WriteClusterEvents");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_WriteClusterEvents");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_WriteClusterEvents");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_GetLogIntormation(struct ndr_push *ndr, int flags, const struct eventlog_GetLogIntormation *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_GetLogIntormation(struct ndr_pull *ndr, int flags, struct eventlog_GetLogIntormation *r)
+{
+       if (flags & NDR_IN) {
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_GetLogIntormation(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_GetLogIntormation *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_GetLogIntormation");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_GetLogIntormation");
+               ndr->depth++;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_GetLogIntormation");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+NTSTATUS ndr_push_eventlog_FlushEventLog(struct ndr_push *ndr, int flags, const struct eventlog_FlushEventLog *r)
+{
+       if (flags & NDR_IN) {
+               if (r->in.handle == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
+               NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_eventlog_FlushEventLog(struct ndr_pull *ndr, int flags, struct eventlog_FlushEventLog *r)
+{
+       TALLOC_CTX *_mem_save_handle_0;
+       if (flags & NDR_IN) {
+               if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+                       NDR_PULL_ALLOC(ndr, r->in.handle);
+               }
+               _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+               NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+       }
+       return NT_STATUS_OK;
+}
+
+_PUBLIC_ void ndr_print_eventlog_FlushEventLog(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_FlushEventLog *r)
+{
+       ndr_print_struct(ndr, name, "eventlog_FlushEventLog");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "eventlog_FlushEventLog");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "handle", r->in.handle);
+               ndr->depth++;
+               ndr_print_policy_handle(ndr, "handle", r->in.handle);
+               ndr->depth--;
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "eventlog_FlushEventLog");
+               ndr->depth++;
+               ndr_print_NTSTATUS(ndr, "result", r->out.result);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
+
+const struct dcerpc_interface_call eventlog_calls[] = {
+       {
+               "eventlog_ClearEventLogW",
+               sizeof(struct eventlog_ClearEventLogW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ClearEventLogW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ClearEventLogW,
+               (ndr_print_function_t) ndr_print_eventlog_ClearEventLogW,
+               False,
+       },
+       {
+               "eventlog_BackupEventLogW",
+               sizeof(struct eventlog_BackupEventLogW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_BackupEventLogW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_BackupEventLogW,
+               (ndr_print_function_t) ndr_print_eventlog_BackupEventLogW,
+               False,
+       },
+       {
+               "eventlog_CloseEventLog",
+               sizeof(struct eventlog_CloseEventLog),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_CloseEventLog,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_CloseEventLog,
+               (ndr_print_function_t) ndr_print_eventlog_CloseEventLog,
+               False,
+       },
+       {
+               "eventlog_DeregisterEventSource",
+               sizeof(struct eventlog_DeregisterEventSource),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_DeregisterEventSource,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_DeregisterEventSource,
+               (ndr_print_function_t) ndr_print_eventlog_DeregisterEventSource,
+               False,
+       },
+       {
+               "eventlog_GetNumRecords",
+               sizeof(struct eventlog_GetNumRecords),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_GetNumRecords,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_GetNumRecords,
+               (ndr_print_function_t) ndr_print_eventlog_GetNumRecords,
+               False,
+       },
+       {
+               "eventlog_GetOldestRecord",
+               sizeof(struct eventlog_GetOldestRecord),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_GetOldestRecord,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_GetOldestRecord,
+               (ndr_print_function_t) ndr_print_eventlog_GetOldestRecord,
+               False,
+       },
+       {
+               "eventlog_ChangeNotify",
+               sizeof(struct eventlog_ChangeNotify),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ChangeNotify,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ChangeNotify,
+               (ndr_print_function_t) ndr_print_eventlog_ChangeNotify,
+               False,
+       },
+       {
+               "eventlog_OpenEventLogW",
+               sizeof(struct eventlog_OpenEventLogW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_OpenEventLogW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_OpenEventLogW,
+               (ndr_print_function_t) ndr_print_eventlog_OpenEventLogW,
+               False,
+       },
+       {
+               "eventlog_RegisterEventSourceW",
+               sizeof(struct eventlog_RegisterEventSourceW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_RegisterEventSourceW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_RegisterEventSourceW,
+               (ndr_print_function_t) ndr_print_eventlog_RegisterEventSourceW,
+               False,
+       },
+       {
+               "eventlog_OpenBackupEventLogW",
+               sizeof(struct eventlog_OpenBackupEventLogW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_OpenBackupEventLogW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_OpenBackupEventLogW,
+               (ndr_print_function_t) ndr_print_eventlog_OpenBackupEventLogW,
+               False,
+       },
+       {
+               "eventlog_ReadEventLogW",
+               sizeof(struct eventlog_ReadEventLogW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ReadEventLogW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ReadEventLogW,
+               (ndr_print_function_t) ndr_print_eventlog_ReadEventLogW,
+               False,
+       },
+       {
+               "eventlog_ReportEventW",
+               sizeof(struct eventlog_ReportEventW),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ReportEventW,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ReportEventW,
+               (ndr_print_function_t) ndr_print_eventlog_ReportEventW,
+               False,
+       },
+       {
+               "eventlog_ClearEventLogA",
+               sizeof(struct eventlog_ClearEventLogA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ClearEventLogA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ClearEventLogA,
+               (ndr_print_function_t) ndr_print_eventlog_ClearEventLogA,
+               False,
+       },
+       {
+               "eventlog_BackupEventLogA",
+               sizeof(struct eventlog_BackupEventLogA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_BackupEventLogA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_BackupEventLogA,
+               (ndr_print_function_t) ndr_print_eventlog_BackupEventLogA,
+               False,
+       },
+       {
+               "eventlog_OpenEventLogA",
+               sizeof(struct eventlog_OpenEventLogA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_OpenEventLogA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_OpenEventLogA,
+               (ndr_print_function_t) ndr_print_eventlog_OpenEventLogA,
+               False,
+       },
+       {
+               "eventlog_RegisterEventSourceA",
+               sizeof(struct eventlog_RegisterEventSourceA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_RegisterEventSourceA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_RegisterEventSourceA,
+               (ndr_print_function_t) ndr_print_eventlog_RegisterEventSourceA,
+               False,
+       },
+       {
+               "eventlog_OpenBackupEventLogA",
+               sizeof(struct eventlog_OpenBackupEventLogA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_OpenBackupEventLogA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_OpenBackupEventLogA,
+               (ndr_print_function_t) ndr_print_eventlog_OpenBackupEventLogA,
+               False,
+       },
+       {
+               "eventlog_ReadEventLogA",
+               sizeof(struct eventlog_ReadEventLogA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ReadEventLogA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ReadEventLogA,
+               (ndr_print_function_t) ndr_print_eventlog_ReadEventLogA,
+               False,
+       },
+       {
+               "eventlog_ReportEventA",
+               sizeof(struct eventlog_ReportEventA),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_ReportEventA,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_ReportEventA,
+               (ndr_print_function_t) ndr_print_eventlog_ReportEventA,
+               False,
+       },
+       {
+               "eventlog_RegisterClusterSvc",
+               sizeof(struct eventlog_RegisterClusterSvc),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_RegisterClusterSvc,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_RegisterClusterSvc,
+               (ndr_print_function_t) ndr_print_eventlog_RegisterClusterSvc,
+               False,
+       },
+       {
+               "eventlog_DeregisterClusterSvc",
+               sizeof(struct eventlog_DeregisterClusterSvc),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_DeregisterClusterSvc,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_DeregisterClusterSvc,
+               (ndr_print_function_t) ndr_print_eventlog_DeregisterClusterSvc,
+               False,
+       },
+       {
+               "eventlog_WriteClusterEvents",
+               sizeof(struct eventlog_WriteClusterEvents),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_WriteClusterEvents,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_WriteClusterEvents,
+               (ndr_print_function_t) ndr_print_eventlog_WriteClusterEvents,
+               False,
+       },
+       {
+               "eventlog_GetLogIntormation",
+               sizeof(struct eventlog_GetLogIntormation),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_GetLogIntormation,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_GetLogIntormation,
+               (ndr_print_function_t) ndr_print_eventlog_GetLogIntormation,
+               False,
+       },
+       {
+               "eventlog_FlushEventLog",
+               sizeof(struct eventlog_FlushEventLog),
+               (ndr_push_flags_fn_t) ndr_push_eventlog_FlushEventLog,
+               (ndr_pull_flags_fn_t) ndr_pull_eventlog_FlushEventLog,
+               (ndr_print_function_t) ndr_print_eventlog_FlushEventLog,
+               False,
+       },
+       { NULL, 0, NULL, NULL, NULL, False }
+};
+
+const char * const eventlog_endpoint_strings[] = {
+       "ncacn_np:[\\pipe\\eventlog]", 
+};
+
+const struct dcerpc_endpoint_list eventlog_endpoints = {
+       .count  = 1,
+       .names  = eventlog_endpoint_strings
+};
+
+const char * const eventlog_authservice_strings[] = {
+       "host", 
+};
+
+const struct dcerpc_authservice_list eventlog_authservices = {
+       .count  = 1,
+       .names  = eventlog_authservice_strings
+};
+
+
+const struct dcerpc_interface_table dcerpc_table_eventlog = {
+       .name           = "eventlog",
+       .syntax_id      = {
+               {0x82273fdc,0xe32a,0x18c3,{0x3f,0x78},{0x82,0x79,0x29,0xdc,0x23,0xea}},
+               DCERPC_EVENTLOG_VERSION
+       },
+       .helpstring     = DCERPC_EVENTLOG_HELPSTRING,
+       .num_calls      = 24,
+       .calls          = eventlog_calls,
+       .endpoints      = &eventlog_endpoints,
+       .authservices   = &eventlog_authservices
+};
+
diff --git a/source3/librpc/gen_ndr/ndr_eventlog.h b/source3/librpc/gen_ndr/ndr_eventlog.h
new file mode 100644 (file)
index 0000000..da43bcf
--- /dev/null
@@ -0,0 +1,92 @@
+/* header auto-generated by pidl */
+
+#include "librpc/gen_ndr/eventlog.h"
+
+#ifndef _HEADER_NDR_eventlog
+#define _HEADER_NDR_eventlog
+
+#include "librpc/ndr/libndr.h"
+#define DCERPC_EVENTLOG_UUID "82273fdc-e32a-18c3-3f78-827929dc23ea"
+#define DCERPC_EVENTLOG_VERSION 0.0
+#define DCERPC_EVENTLOG_NAME "eventlog"
+#define DCERPC_EVENTLOG_HELPSTRING "Event Logger"
+extern const struct dcerpc_interface_table dcerpc_table_eventlog;
+NTSTATUS dcerpc_server_eventlog_init(void);
+#define DCERPC_EVENTLOG_CLEAREVENTLOGW (0x00)
+
+#define DCERPC_EVENTLOG_BACKUPEVENTLOGW (0x01)
+
+#define DCERPC_EVENTLOG_CLOSEEVENTLOG (0x02)
+
+#define DCERPC_EVENTLOG_DEREGISTEREVENTSOURCE (0x03)
+
+#define DCERPC_EVENTLOG_GETNUMRECORDS (0x04)
+
+#define DCERPC_EVENTLOG_GETOLDESTRECORD (0x05)
+
+#define DCERPC_EVENTLOG_CHANGENOTIFY (0x06)
+
+#define DCERPC_EVENTLOG_OPENEVENTLOGW (0x07)
+
+#define DCERPC_EVENTLOG_REGISTEREVENTSOURCEW (0x08)
+
+#define DCERPC_EVENTLOG_OPENBACKUPEVENTLOGW (0x09)
+
+#define DCERPC_EVENTLOG_READEVENTLOGW (0x0a)
+
+#define DCERPC_EVENTLOG_REPORTEVENTW (0x0b)
+
+#define DCERPC_EVENTLOG_CLEAREVENTLOGA (0x0c)
+
+#define DCERPC_EVENTLOG_BACKUPEVENTLOGA (0x0d)
+
+#define DCERPC_EVENTLOG_OPENEVENTLOGA (0x0e)
+
+#define DCERPC_EVENTLOG_REGISTEREVENTSOURCEA (0x0f)
+
+#define DCERPC_EVENTLOG_OPENBACKUPEVENTLOGA (0x10)
+
+#define DCERPC_EVENTLOG_READEVENTLOGA (0x11)
+
+#define DCERPC_EVENTLOG_REPORTEVENTA (0x12)
+
+#define DCERPC_EVENTLOG_REGISTERCLUSTERSVC (0x13)
+
+#define DCERPC_EVENTLOG_DEREGISTERCLUSTERSVC (0x14)
+
+#define DCERPC_EVENTLOG_WRITECLUSTEREVENTS (0x15)
+
+#define DCERPC_EVENTLOG_GETLOGINTORMATION (0x16)
+
+#define DCERPC_EVENTLOG_FLUSHEVENTLOG (0x17)
+
+#define DCERPC_EVENTLOG_CALL_COUNT (24)
+void ndr_print_eventlog_OpenUnknown0(struct ndr_print *ndr, const char *name, const struct eventlog_OpenUnknown0 *r);
+NTSTATUS ndr_push_eventlog_Record(struct ndr_push *ndr, int ndr_flags, const struct eventlog_Record *r);
+NTSTATUS ndr_pull_eventlog_Record(struct ndr_pull *ndr, int ndr_flags, struct eventlog_Record *r);
+void ndr_print_eventlog_Record(struct ndr_print *ndr, const char *name, const struct eventlog_Record *r);
+void ndr_print_eventlog_ClearEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ClearEventLogW *r);
+void ndr_print_eventlog_BackupEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_BackupEventLogW *r);
+void ndr_print_eventlog_CloseEventLog(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_CloseEventLog *r);
+void ndr_print_eventlog_DeregisterEventSource(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_DeregisterEventSource *r);
+void ndr_print_eventlog_GetNumRecords(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_GetNumRecords *r);
+void ndr_print_eventlog_GetOldestRecord(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_GetOldestRecord *r);
+void ndr_print_eventlog_ChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ChangeNotify *r);
+void ndr_print_eventlog_OpenEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenEventLogW *r);
+void ndr_print_eventlog_RegisterEventSourceW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_RegisterEventSourceW *r);
+void ndr_print_eventlog_OpenBackupEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenBackupEventLogW *r);
+void ndr_print_eventlog_ReadEventLogW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReadEventLogW *r);
+void ndr_print_eventlog_ReportEventW(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReportEventW *r);
+void ndr_print_eventlog_ClearEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ClearEventLogA *r);
+void ndr_print_eventlog_BackupEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_BackupEventLogA *r);
+void ndr_print_eventlog_OpenEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenEventLogA *r);
+void ndr_print_eventlog_RegisterEventSourceA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_RegisterEventSourceA *r);
+void ndr_print_eventlog_OpenBackupEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_OpenBackupEventLogA *r);
+void ndr_print_eventlog_ReadEventLogA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReadEventLogA *r);
+void ndr_print_eventlog_ReportEventA(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_ReportEventA *r);
+void ndr_print_eventlog_RegisterClusterSvc(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_RegisterClusterSvc *r);
+void ndr_print_eventlog_DeregisterClusterSvc(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_DeregisterClusterSvc *r);
+void ndr_print_eventlog_WriteClusterEvents(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_WriteClusterEvents *r);
+void ndr_print_eventlog_GetLogIntormation(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_GetLogIntormation *r);
+void ndr_print_eventlog_FlushEventLog(struct ndr_print *ndr, const char *name, int flags, const struct eventlog_FlushEventLog *r);
+#endif /* _HEADER_NDR_eventlog */
diff --git a/source3/librpc/gen_ndr/srv_eventlog.c b/source3/librpc/gen_ndr/srv_eventlog.c
new file mode 100644 (file)
index 0000000..a4c3bf1
--- /dev/null
@@ -0,0 +1,1279 @@
+/*
+ * Unix SMB/CIFS implementation.
+ * server auto-generated by pidl. DO NOT MODIFY!
+ */
+
+#include "includes.h"
+#include "librpc/gen_ndr/srv_eventlog.h"
+
+static BOOL api_eventlog_ClearEventLogW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ClearEventLogW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ClearEventLogW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ClearEventLogW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ClearEventLogW(p, r.in.handle, r.in.unknown);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ClearEventLogW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_BackupEventLogW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_BackupEventLogW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_BackupEventLogW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_BackupEventLogW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_BackupEventLogW(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_BackupEventLogW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_CloseEventLog(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_CloseEventLog r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_CloseEventLog");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_CloseEventLog(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.handle = r.in.handle;
+       r.out.result = _eventlog_CloseEventLog(p, r.in.handle);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_CloseEventLog(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_DeregisterEventSource(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_DeregisterEventSource r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_DeregisterEventSource");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_DeregisterEventSource(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_DeregisterEventSource(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_DeregisterEventSource(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_GetNumRecords(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_GetNumRecords r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_GetNumRecords");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_GetNumRecords(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.number = talloc_size(mem_ctx, sizeof(*r.out.number));
+       if (r.out.number == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_GetNumRecords(p, r.in.handle, r.out.number);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_GetNumRecords(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_GetOldestRecord(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_GetOldestRecord r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_GetOldestRecord");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_GetOldestRecord(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_GetOldestRecord(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_GetOldestRecord(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_ChangeNotify(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ChangeNotify r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ChangeNotify");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ChangeNotify(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ChangeNotify(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ChangeNotify(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_OpenEventLogW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_OpenEventLogW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_OpenEventLogW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_OpenEventLogW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.handle = talloc_size(mem_ctx, sizeof(*r.out.handle));
+       if (r.out.handle == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_OpenEventLogW(p, r.in.unknown0, r.in.logname, r.in.servername, r.in.unknown2, r.in.unknown3, r.out.handle);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_OpenEventLogW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_RegisterEventSourceW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_RegisterEventSourceW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_RegisterEventSourceW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_RegisterEventSourceW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_RegisterEventSourceW(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_RegisterEventSourceW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_OpenBackupEventLogW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_OpenBackupEventLogW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_OpenBackupEventLogW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_OpenBackupEventLogW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_OpenBackupEventLogW(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_OpenBackupEventLogW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_ReadEventLogW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ReadEventLogW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ReadEventLogW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ReadEventLogW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.data = talloc_array_size(mem_ctx, sizeof(*r.out.data), r.in.number_of_bytes);
+       if (r.out.data == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.sent_size = talloc_size(mem_ctx, sizeof(*r.out.sent_size));
+       if (r.out.sent_size == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.real_size = talloc_size(mem_ctx, sizeof(*r.out.real_size));
+       if (r.out.real_size == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ReadEventLogW(p, r.in.handle, r.in.flags, r.in.offset, r.in.number_of_bytes, r.out.data, r.out.sent_size, r.out.real_size);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ReadEventLogW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_ReportEventW(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ReportEventW r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ReportEventW");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ReportEventW(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ReportEventW(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ReportEventW(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_ClearEventLogA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ClearEventLogA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ClearEventLogA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ClearEventLogA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ClearEventLogA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ClearEventLogA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_BackupEventLogA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_BackupEventLogA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_BackupEventLogA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_BackupEventLogA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_BackupEventLogA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_BackupEventLogA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_OpenEventLogA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_OpenEventLogA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_OpenEventLogA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_OpenEventLogA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_OpenEventLogA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_OpenEventLogA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_RegisterEventSourceA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_RegisterEventSourceA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_RegisterEventSourceA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_RegisterEventSourceA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_RegisterEventSourceA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_RegisterEventSourceA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_OpenBackupEventLogA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_OpenBackupEventLogA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_OpenBackupEventLogA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_OpenBackupEventLogA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_OpenBackupEventLogA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_OpenBackupEventLogA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_ReadEventLogA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ReadEventLogA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ReadEventLogA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ReadEventLogA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ReadEventLogA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ReadEventLogA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_ReportEventA(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_ReportEventA r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_ReportEventA");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_ReportEventA(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_ReportEventA(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_ReportEventA(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_RegisterClusterSvc(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_RegisterClusterSvc r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_RegisterClusterSvc");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_RegisterClusterSvc(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_RegisterClusterSvc(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_RegisterClusterSvc(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_DeregisterClusterSvc(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_DeregisterClusterSvc r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_DeregisterClusterSvc");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_DeregisterClusterSvc(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_DeregisterClusterSvc(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_DeregisterClusterSvc(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_WriteClusterEvents(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_WriteClusterEvents r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_WriteClusterEvents");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_WriteClusterEvents(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_WriteClusterEvents(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_WriteClusterEvents(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_GetLogIntormation(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_GetLogIntormation r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_GetLogIntormation");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_GetLogIntormation(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_GetLogIntormation(p);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_GetLogIntormation(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+static BOOL api_eventlog_FlushEventLog(pipes_struct *p)
+{
+       struct ndr_pull *pull;
+       struct ndr_push *push;
+       NTSTATUS status;
+       DATA_BLOB blob;
+       struct eventlog_FlushEventLog r;
+       TALLOC_CTX *mem_ctx = talloc_init("api_eventlog_FlushEventLog");
+       
+       if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       if (pull == NULL)
+               return False;
+       
+       pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+       status = ndr_pull_eventlog_FlushEventLog(pull, NDR_IN, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       r.out.result = _eventlog_FlushEventLog(p, r.in.handle);
+       
+       push = ndr_push_init_ctx(mem_ctx);
+       if (push == NULL) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       status = ndr_push_eventlog_FlushEventLog(push, NDR_OUT, &r);
+       if (NT_STATUS_IS_ERR(status)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       blob = ndr_push_blob(push);
+       if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) {
+               talloc_free(mem_ctx);
+               return False;
+       }
+       
+       talloc_free(mem_ctx);
+       
+       return True;
+}
+
+
+/* Tables */
+static struct api_struct api_eventlog_cmds[] = 
+{
+       {"EVENTLOG_CLEAREVENTLOGW", DCERPC_EVENTLOG_CLEAREVENTLOGW, api_eventlog_ClearEventLogW},
+       {"EVENTLOG_BACKUPEVENTLOGW", DCERPC_EVENTLOG_BACKUPEVENTLOGW, api_eventlog_BackupEventLogW},
+       {"EVENTLOG_CLOSEEVENTLOG", DCERPC_EVENTLOG_CLOSEEVENTLOG, api_eventlog_CloseEventLog},
+       {"EVENTLOG_DEREGISTEREVENTSOURCE", DCERPC_EVENTLOG_DEREGISTEREVENTSOURCE, api_eventlog_DeregisterEventSource},
+       {"EVENTLOG_GETNUMRECORDS", DCERPC_EVENTLOG_GETNUMRECORDS, api_eventlog_GetNumRecords},
+       {"EVENTLOG_GETOLDESTRECORD", DCERPC_EVENTLOG_GETOLDESTRECORD, api_eventlog_GetOldestRecord},
+       {"EVENTLOG_CHANGENOTIFY", DCERPC_EVENTLOG_CHANGENOTIFY, api_eventlog_ChangeNotify},
+       {"EVENTLOG_OPENEVENTLOGW", DCERPC_EVENTLOG_OPENEVENTLOGW, api_eventlog_OpenEventLogW},
+       {"EVENTLOG_REGISTEREVENTSOURCEW", DCERPC_EVENTLOG_REGISTEREVENTSOURCEW, api_eventlog_RegisterEventSourceW},
+       {"EVENTLOG_OPENBACKUPEVENTLOGW", DCERPC_EVENTLOG_OPENBACKUPEVENTLOGW, api_eventlog_OpenBackupEventLogW},
+       {"EVENTLOG_READEVENTLOGW", DCERPC_EVENTLOG_READEVENTLOGW, api_eventlog_ReadEventLogW},
+       {"EVENTLOG_REPORTEVENTW", DCERPC_EVENTLOG_REPORTEVENTW, api_eventlog_ReportEventW},
+       {"EVENTLOG_CLEAREVENTLOGA", DCERPC_EVENTLOG_CLEAREVENTLOGA, api_eventlog_ClearEventLogA},
+       {"EVENTLOG_BACKUPEVENTLOGA", DCERPC_EVENTLOG_BACKUPEVENTLOGA, api_eventlog_BackupEventLogA},
+       {"EVENTLOG_OPENEVENTLOGA", DCERPC_EVENTLOG_OPENEVENTLOGA, api_eventlog_OpenEventLogA},
+       {"EVENTLOG_REGISTEREVENTSOURCEA", DCERPC_EVENTLOG_REGISTEREVENTSOURCEA, api_eventlog_RegisterEventSourceA},
+       {"EVENTLOG_OPENBACKUPEVENTLOGA", DCERPC_EVENTLOG_OPENBACKUPEVENTLOGA, api_eventlog_OpenBackupEventLogA},
+       {"EVENTLOG_READEVENTLOGA", DCERPC_EVENTLOG_READEVENTLOGA, api_eventlog_ReadEventLogA},
+       {"EVENTLOG_REPORTEVENTA", DCERPC_EVENTLOG_REPORTEVENTA, api_eventlog_ReportEventA},
+       {"EVENTLOG_REGISTERCLUSTERSVC", DCERPC_EVENTLOG_REGISTERCLUSTERSVC, api_eventlog_RegisterClusterSvc},
+       {"EVENTLOG_DEREGISTERCLUSTERSVC", DCERPC_EVENTLOG_DEREGISTERCLUSTERSVC, api_eventlog_DeregisterClusterSvc},
+       {"EVENTLOG_WRITECLUSTEREVENTS", DCERPC_EVENTLOG_WRITECLUSTEREVENTS, api_eventlog_WriteClusterEvents},
+       {"EVENTLOG_GETLOGINTORMATION", DCERPC_EVENTLOG_GETLOGINTORMATION, api_eventlog_GetLogIntormation},
+       {"EVENTLOG_FLUSHEVENTLOG", DCERPC_EVENTLOG_FLUSHEVENTLOG, api_eventlog_FlushEventLog},
+};
+
+void eventlog_get_pipe_fns(struct api_struct **fns, int *n_fns)
+{
+       *fns = api_eventlog_cmds;
+       *n_fns = sizeof(api_eventlog_cmds) / sizeof(struct api_struct);
+}
+
+NTSTATUS rpc_eventlog_init(void)
+{
+       return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "eventlog", "eventlog", api_eventlog_cmds, sizeof(api_eventlog_cmds) / sizeof(struct api_struct));
+}
diff --git a/source3/librpc/gen_ndr/srv_eventlog.h b/source3/librpc/gen_ndr/srv_eventlog.h
new file mode 100644 (file)
index 0000000..6401c1a
--- /dev/null
@@ -0,0 +1,30 @@
+#include "librpc/gen_ndr/ndr_eventlog.h"
+#ifndef __SRV_EVENTLOG__
+#define __SRV_EVENTLOG__
+NTSTATUS _eventlog_ClearEventLogW(pipes_struct *p, struct policy_handle *handle, struct lsa_String *unknown);
+NTSTATUS _eventlog_BackupEventLogW(pipes_struct *p);
+NTSTATUS _eventlog_CloseEventLog(pipes_struct *p, struct policy_handle *handle);
+NTSTATUS _eventlog_DeregisterEventSource(pipes_struct *p);
+NTSTATUS _eventlog_GetNumRecords(pipes_struct *p, struct policy_handle *handle, uint32_t *number);
+NTSTATUS _eventlog_GetOldestRecord(pipes_struct *p);
+NTSTATUS _eventlog_ChangeNotify(pipes_struct *p);
+NTSTATUS _eventlog_OpenEventLogW(pipes_struct *p, struct eventlog_OpenUnknown0 *unknown0, struct lsa_String logname, struct lsa_String servername, uint32_t unknown2, uint32_t unknown3, struct policy_handle *handle);
+NTSTATUS _eventlog_RegisterEventSourceW(pipes_struct *p);
+NTSTATUS _eventlog_OpenBackupEventLogW(pipes_struct *p);
+NTSTATUS _eventlog_ReadEventLogW(pipes_struct *p, struct policy_handle *handle, uint32_t flags, uint32_t offset, uint32_t number_of_bytes, uint8_t *data, uint32_t *sent_size, uint32_t *real_size);
+NTSTATUS _eventlog_ReportEventW(pipes_struct *p);
+NTSTATUS _eventlog_ClearEventLogA(pipes_struct *p);
+NTSTATUS _eventlog_BackupEventLogA(pipes_struct *p);
+NTSTATUS _eventlog_OpenEventLogA(pipes_struct *p);
+NTSTATUS _eventlog_RegisterEventSourceA(pipes_struct *p);
+NTSTATUS _eventlog_OpenBackupEventLogA(pipes_struct *p);
+NTSTATUS _eventlog_ReadEventLogA(pipes_struct *p);
+NTSTATUS _eventlog_ReportEventA(pipes_struct *p);
+NTSTATUS _eventlog_RegisterClusterSvc(pipes_struct *p);
+NTSTATUS _eventlog_DeregisterClusterSvc(pipes_struct *p);
+NTSTATUS _eventlog_WriteClusterEvents(pipes_struct *p);
+NTSTATUS _eventlog_GetLogIntormation(pipes_struct *p);
+NTSTATUS _eventlog_FlushEventLog(pipes_struct *p, struct policy_handle *handle);
+void eventlog_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_eventlog_init(void);
+#endif /* __SRV_EVENTLOG__ */
index c8a146b272f5054c50608809846572d1251f734b..5e14a909c874d7fee5263e12c08ea52653762114 100644 (file)
@@ -80,7 +80,7 @@
        /* Function: 0x04 */
        NTSTATUS eventlog_GetNumRecords(
                [in] policy_handle *handle,
-               [out] uint32 number
+               [out,ref] uint32 *number
        );
 
        /******************/
                [in] uint32 offset,
                [in] uint32 number_of_bytes,
                [out,size_is(number_of_bytes)] uint8 *data,
-               [out] uint32 sent_size,
-               [out] uint32 real_size
+               [out,ref] uint32 *sent_size,
+               [out,ref] uint32 *real_size
        );
 
        /*****************/