[ros-diffs] [hpoussin] 33585: Make eventlog RPC interface more compatible with MS Windows

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Sun May 18 17:29:53 CEST 2008


Author: hpoussin
Date: Sun May 18 10:29:53 2008
New Revision: 33585

URL: http://svn.reactos.org/svn/reactos?rev=33585&view=rev
Log:
Make eventlog RPC interface more compatible with MS Windows

Modified:
    trunk/reactos/base/services/eventlog/rpc.c
    trunk/reactos/dll/win32/advapi32/service/eventlog.c
    trunk/reactos/include/reactos/idl/eventlogrpc.idl

Modified: trunk/reactos/base/services/eventlog/rpc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/eventlog/rpc.c?rev=33585&r1=33584&r2=33585&view=diff
==============================================================================
--- trunk/reactos/base/services/eventlog/rpc.c [iso-8859-1] (original)
+++ trunk/reactos/base/services/eventlog/rpc.c [iso-8859-1] Sun May 18 10:29:53 2008
@@ -10,15 +10,6 @@
 
 #include "eventlog.h"
 
-#ifdef __GNUC__
-/* HACK as long as idl compiler doesn't support well PUNICODE_STRING args */
-#define PANSI_STRING LPSTR
-#define PUNICODE_STRING LPWSTR
-#define BINDING_HANDLE handle_t BindingHandle,
-#else
-#define BINDING_HANDLE
-#endif
-
 /* FUNCTIONS ****************************************************************/
 
 DWORD STDCALL RpcThreadRoutine(LPVOID lpParameter)
@@ -50,169 +41,168 @@
     return 0;
 }
 
-/* Function 0x00 */
+
+/* Function 0 */
 NTSTATUS ElfrClearELFW(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  PUNICODE_STRING BackupName)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-/* Function 0x01 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    PRPC_UNICODE_STRING BackupFileName)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 1 */
 NTSTATUS ElfrBackupELFW(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  PUNICODE_STRING BackupName)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x02 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    PRPC_UNICODE_STRING BackupFileName)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 2 */
 NTSTATUS ElfrCloseEL(
-    BINDING_HANDLE
-    /* [out][in] */ PLOGHANDLE Handle)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x03 */
+    handle_t BindingHandle,
+    IELF_HANDLE *LogHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 3 */
 NTSTATUS ElfrDeregisterEventSource(
-    BINDING_HANDLE
-    /* [out][in] */ PLOGHANDLE Handle)
+    handle_t BindingHandle,
+    IELF_HANDLE *LogHandle)
 {
     UNIMPLEMENTED;
     return STATUS_SUCCESS;
 }
 
 
-/* Function 0x04 */
+/* Function 4 */
 NTSTATUS ElfrNumberOfRecords(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [out] */ long __RPC_FAR * NumberOfRecords)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x05 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD *NumberOfRecords)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 5 */
 NTSTATUS ElfrOldestRecord(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE LogHandle,
-    /* [out] */ long __RPC_FAR * OldestRecNumber)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x06 */
-NTSTATUS ElfrChangeNotify(void)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x07 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD *OldestRecordNumber)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 6 */
+NTSTATUS ElfrChangeNotify(
+    handle_t BindingHandle,
+    IELF_HANDLE *LogHandle,
+    RPC_CLIENT_ID ClientId,
+    DWORD Event)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 7 */
 NTSTATUS ElfrOpenELW(
-    BINDING_HANDLE
-    /* [unique][in] */  LPWSTR ServerName,
-    /* [in] */  PUNICODE_STRING FileName,
-    /* [in] */  PUNICODE_STRING NullStr,
-    /* [in] */  long MajorVer,
-    /* [in] */  long MinorVer,
-    /* [out] */ PLOGHANDLE Handle)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x08 */
+    handle_t BindingHandle,
+    EVENTLOG_HANDLE_W UNCServerName,
+    PRPC_UNICODE_STRING ModuleName,
+    PRPC_UNICODE_STRING RegModuleName,
+    DWORD MajorVersion,
+    DWORD MinorVersion,
+    IELF_HANDLE *LogHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 8 */
 NTSTATUS ElfrRegisterEventSourceW(
-    BINDING_HANDLE
-    /* [unique][in] */  LPWSTR ServerName,
-    /* [in] */  PUNICODE_STRING LogName,
-    /* [in] */  PUNICODE_STRING NullStr,
-    /* [in] */  long MajorVer,
-    /* [in] */  long MinorVer,
-    /* [out] */ PLOGHANDLE Handle)
-{
-    UNIMPLEMENTED;
-    *Handle = 1;
+    handle_t BindingHandle,
+    EVENTLOG_HANDLE_W UNCServerName,
+    PRPC_UNICODE_STRING ModuleName,
+    PRPC_UNICODE_STRING RegModuleName,
+    DWORD MajorVersion,
+    DWORD MinorVersion,
+    IELF_HANDLE *LogHandle)
+{
+    UNIMPLEMENTED;
+    *LogHandle = 1;
     return STATUS_SUCCESS;
 }
 
 
-/* Function 0x09 */
+/* Function 9 */
 NTSTATUS ElfrOpenBELW(
-    BINDING_HANDLE
-    /* [unique][in] */  LPWSTR ServerName,
-    /* [in] */  PUNICODE_STRING BackupName,
-    /* [in] */  long MajorVer,
-    /* [in] */  long MinorVer,
-    /* [out] */ PLOGHANDLE Handle)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x0a */
+    handle_t BindingHandle,
+    EVENTLOG_HANDLE_W UNCServerName,
+    PRPC_UNICODE_STRING BackupFileName,
+    DWORD MajorVersion,
+    DWORD MinorVersion,
+    IELF_HANDLE *LogHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 10 */
 NTSTATUS ElfrReadELW(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  long Flags,
-    /* [in] */  long Offset,
-    /* [in] */  long BufSize,
-    /* [size_is][out] */unsigned char __RPC_FAR * Buffer,
-    /* [out] */ long __RPC_FAR * BytesRead,
-    /* [out] */ long __RPC_FAR * BytesNeeded)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x0b */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD ReadFlags,
+    DWORD RecordOffset,
+    RULONG NumberOfBytesToRead,
+    BYTE *Buffer,
+    DWORD *NumberOfBytesRead,
+    DWORD *MinNumberOfBytesNeeded)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 11 */
 NTSTATUS ElfrReportEventW(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  long Time,
-    /* [in] */  short Type,
-    /* [in] */  short Category,
-    /* [in] */  long ID,
-    /* [in] */  short NumStrings,
-    /* [in] */  long DataSize,
-    /* [in] */  PUNICODE_STRING ComputerName,
-    /* [unique][in] */          unsigned char __RPC_FAR * SID,
-    /* [unique][size_is][in] */ PUNICODE_STRING __RPC_FAR Strings[],
-    /* [unique][size_is][in] */ unsigned char __RPC_FAR * Data,
-    /* [in] */                  short Flags,
-    /* [unique][out][in] */     long __RPC_FAR * unknown1,
-    /* [unique][out][in] */     long __RPC_FAR * unknown2)
-{
-    short i;
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD Time,
+    USHORT EventType,
+    USHORT EventCategory,
+    DWORD EventID,
+    USHORT NumStrings,
+    DWORD DataSize,
+    PRPC_UNICODE_STRING ComputerName,
+    PRPC_SID UserSID,
+    PRPC_UNICODE_STRING Strings[],
+    BYTE *Data,
+    USHORT Flags,
+    DWORD *RecordNumber,
+    DWORD *TimeWritten)
+{
+    USHORT i;
 
     /* partial stub */
-
-    if (NumStrings == 0)
-        return STATUS_SUCCESS;
-
-    if (Strings == NULL)
-        return STATUS_SUCCESS;
-
     for (i = 0; i < NumStrings; i++)
     {
-        switch (Type)
+        switch (EventType)
         {
             case EVENTLOG_SUCCESS:
                 DPRINT1("Success: %S\n", Strings[i]);
@@ -231,7 +221,7 @@
                 break;
 
             default:
-                DPRINT1("Type %hu: %S\n", Type, Strings[i]);
+                DPRINT1("Type %hu: %S\n", EventType, Strings[i]);
                 break;
         }
     }
@@ -240,184 +230,236 @@
 }
 
 
-/* Function 0x0c */
+/* Function 12 */
 NTSTATUS ElfrClearELFA(
-    BINDING_HANDLE
-    /* [in] */          LOGHANDLE Handle,
-    /* [unique][in] */  PANSI_STRING BackupName)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x0d */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    PRPC_STRING BackupFileName)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 13 */
 NTSTATUS ElfrBackupELFA(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  PANSI_STRING BackupName)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x0e */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    PRPC_STRING BackupFileName)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 14 */
 NTSTATUS ElfrOpenELA(
-    BINDING_HANDLE
-    /* [unique][in] */  LPSTR ServerName,
-    /* [in] */  PANSI_STRING LogName,
-    /* [in] */  PANSI_STRING NullStr,
-    /* [in] */  long MajorVer,
-    /* [in] */  long MinorVer,
-    /* [out] */ PLOGHANDLE Handle)
-{
-    UNICODE_STRING logname = { 0, }, servername = { 0, }, StrNull = { 0, };
-    NTSTATUS status;
-
-    if (LogName && !RtlCreateUnicodeStringFromAsciiz(&logname, LogName))
+    handle_t BindingHandle,
+    EVENTLOG_HANDLE_A UNCServerName,
+    PRPC_STRING ModuleName,
+    PRPC_STRING RegModuleName,
+    DWORD MajorVersion,
+    DWORD MinorVersion,
+    IELF_HANDLE *LogHandle)
+{
+    UNICODE_STRING UNCServerNameW = { 0, };
+    UNICODE_STRING ModuleNameW = { 0, };
+    UNICODE_STRING RegModuleNameW = { 0, };
+    NTSTATUS Status;
+
+    if (UNCServerName &&
+        !RtlCreateUnicodeStringFromAsciiz(&UNCServerNameW, UNCServerName))
     {
         return STATUS_NO_MEMORY;
     }
 
-    if (ServerName &&
-        !RtlCreateUnicodeStringFromAsciiz(&servername, ServerName))
-    {
-        RtlFreeUnicodeString(&logname);
+    if (ModuleName &&
+        !RtlAnsiStringToUnicodeString(&ModuleNameW, (PANSI_STRING)ModuleName, TRUE))
+    {
+        RtlFreeUnicodeString(&UNCServerNameW);
         return STATUS_NO_MEMORY;
     }
 
-    status = ElfrOpenELW(BindingHandle, servername.Buffer, logname.Buffer,
-                         StrNull.Buffer, MajorVer, MinorVer, Handle);
-
-    RtlFreeUnicodeString(&servername);
-    RtlFreeUnicodeString(&logname);
-
-    return status;
-}
-
-
-/* Function 0x0f */
+    if (RegModuleName &&
+        !RtlAnsiStringToUnicodeString(&RegModuleNameW, (PANSI_STRING)RegModuleName, TRUE))
+    {
+        RtlFreeUnicodeString(&UNCServerNameW);
+        RtlFreeUnicodeString(&ModuleNameW);
+        return STATUS_NO_MEMORY;
+    }
+
+    Status = ElfrOpenELW(
+        BindingHandle,
+        UNCServerName ? UNCServerNameW.Buffer : NULL,
+        ModuleName ? (PRPC_UNICODE_STRING)&ModuleNameW : NULL,
+        RegModuleName ? (PRPC_UNICODE_STRING)&RegModuleNameW : NULL,
+        MajorVersion,
+        MinorVersion,
+        LogHandle);
+
+    RtlFreeUnicodeString(&UNCServerNameW);
+    RtlFreeUnicodeString(&ModuleNameW);
+    RtlFreeUnicodeString(&RegModuleNameW);
+
+    return Status;
+}
+
+
+/* Function 15 */
 NTSTATUS ElfrRegisterEventSourceA(
-    BINDING_HANDLE
-    /* [unique][in] */  LPSTR ServerName,
-    /* [in] */  PANSI_STRING LogName,
-    /* [in] */  PANSI_STRING NullStr,
-    /* [in] */  long MajorVer,
-    /* [in] */  long MinorVer,
-    /* [out] */ PLOGHANDLE Handle)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x10 */
+    handle_t BindingHandle,
+    EVENTLOG_HANDLE_A UNCServerName,
+    PRPC_STRING ModuleName,
+    PRPC_STRING RegModuleName,
+    DWORD MajorVersion,
+    DWORD MinorVersion,
+    IELF_HANDLE *LogHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 16 */
 NTSTATUS ElfrOpenBELA(
-    BINDING_HANDLE
-    /* [unique][in] */  LPSTR ServerName,
-    /* [in] */  PANSI_STRING BakckupName,
-    /* [in] */  long MajorVer,
-    /* [in] */  long MinorVer,
-    /* [out] */ PLOGHANDLE Handle)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x11 */
+    handle_t BindingHandle,
+    EVENTLOG_HANDLE_A UNCServerName,
+    PRPC_STRING BackupFileName,
+    DWORD MajorVersion,
+    DWORD MinorVersion,
+    IELF_HANDLE *LogHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 17 */
 NTSTATUS ElfrReadELA(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  long Flags,
-    /* [in] */  long Offset,
-    /* [in] */  long BufSize,
-    /* [size_is][out] */unsigned char __RPC_FAR * Buffer,
-    /* [out] */ long __RPC_FAR * BytesRead,
-    /* [out] */ long __RPC_FAR * BytesNeeded)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x12 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD ReadFlags,
+    DWORD RecordOffset,
+    RULONG NumberOfBytesToRead,
+    BYTE *Buffer,
+    DWORD *NumberOfBytesRead,
+    DWORD *MinNumberOfBytesNeeded)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 18 */
 NTSTATUS ElfrReportEventA(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  long Time,
-    /* [in] */  short Type,
-    /* [in] */  short Category,
-    /* [in] */  long ID,
-    /* [in] */  short NumStrings,
-    /* [in] */  long DataSize,
-    /* [in] */  PANSI_STRING ComputerName,
-    /* [unique][in] */  unsigned char __RPC_FAR * SID,
-    /* [unique][size_is][in] */ PANSI_STRING __RPC_FAR Strings[],
-    /* [unique][size_is][in] */ unsigned char __RPC_FAR * Data,
-    /* [in] */                  short Flags,
-    /* [unique][out][in] */     long __RPC_FAR * unknown1,
-    /* [unique][out][in] */     long __RPC_FAR * unknown2)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x13 */
-NTSTATUS ElfrRegisterClusterSvc(void)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x14 */
-NTSTATUS ElfrDeregisterClusterSvc(void)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x15 */
-NTSTATUS ElfrWriteClusterEvents(void)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x16 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD Time,
+    USHORT EventType,
+    USHORT EventCategory,
+    DWORD EventID,
+    USHORT NumStrings,
+    DWORD DataSize,
+    PRPC_STRING ComputerName,
+    PRPC_SID UserSID,
+    PRPC_STRING Strings[],
+    BYTE *Data,
+    USHORT Flags,
+    DWORD *RecordNumber,
+    DWORD *TimeWritten)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 19 */
+NTSTATUS ElfrRegisterClusterSvc(
+    handle_t BindingHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 20 */
+NTSTATUS ElfrDeregisterClusterSvc(
+    handle_t BindingHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 21 */
+NTSTATUS ElfrWriteClusterEvents(
+    handle_t BindingHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 22 */
 NTSTATUS ElfrGetLogInformation(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle,
-    /* [in] */  long InfoLevel,
-    /* [size_is][out] */unsigned char __RPC_FAR * Buffer,
-    /* [in] */  long BufSize,
-    /* [out] */ long __RPC_FAR * BytesNeeded)
-{
-    UNIMPLEMENTED;
-    return STATUS_NOT_IMPLEMENTED;
-}
-
-
-/* Function 0x17 */
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD InfoLevel,
+    BYTE *Buffer,
+    DWORD cbBufSize,
+    DWORD *pcbBytesNeeded)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 23 */
 NTSTATUS ElfrFlushEL(
-    BINDING_HANDLE
-    /* [in] */  LOGHANDLE Handle)
-{
-    DbgPrint("EventLogFlush UNIMPLEMENTED\n");
-    return STATUS_NOT_IMPLEMENTED;
-}
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/* Function 24 */
+NTSTATUS ElfrReportEventAndSourceW(
+    handle_t BindingHandle,
+    IELF_HANDLE LogHandle,
+    DWORD Time,
+    USHORT EventType,
+    USHORT EventCategory,
+    ULONG EventID,
+    PRPC_UNICODE_STRING SourceName,
+    USHORT NumStrings,
+    DWORD DataSize,
+    PRPC_UNICODE_STRING ComputerName,
+    PRPC_SID UserSID,
+    PRPC_UNICODE_STRING Strings[],
+    BYTE *Data,
+    USHORT Flags,
+    DWORD *RecordNumber,
+    DWORD *TimeWritten)
+{
+    UNIMPLEMENTED;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
 
 void __RPC_FAR *__RPC_USER midl_user_allocate(size_t len)
 {
     return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
 }
 
+
 void __RPC_USER midl_user_free(void __RPC_FAR * ptr)
 {
     HeapFree(GetProcessHeap(), 0, ptr);
 }
+
+
+void __RPC_USER IELF_HANDLE_rundown(IELF_HANDLE LogHandle)
+{
+}

Modified: trunk/reactos/dll/win32/advapi32/service/eventlog.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/service/eventlog.c?rev=33585&r1=33584&r2=33585&view=diff
==============================================================================
--- trunk/reactos/dll/win32/advapi32/service/eventlog.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/advapi32/service/eventlog.c [iso-8859-1] Sun May 18 10:29:53 2008
@@ -30,7 +30,7 @@
 typedef struct _LOG_INFO
 {
     RPC_BINDING_HANDLE BindingHandle;
-    LOGHANDLE LogHandle;
+    IELF_HANDLE LogHandle;
     BOOL bLocal;
 } LOG_INFO, *PLOG_INFO;
 
@@ -44,11 +44,13 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    ANSI_STRING BackupFileName;
+    RPC_STRING BackupFileName;
 
     TRACE("%p, %s\n", hEventLog, lpBackupFileName);
 
-    RtlInitAnsiString(&BackupFileName, lpBackupFileName);
+    BackupFileName.Buffer = (LPSTR)lpBackupFileName;
+    BackupFileName.Length = BackupFileName.MaximumLength =
+        lpBackupFileName ? strlen(lpBackupFileName) : 0;
 
     pLog = (PLOG_INFO)hEventLog;
     if (!pLog)
@@ -59,7 +61,7 @@
     Status = ElfrBackupELFA(
         pLog->BindingHandle,
         pLog->LogHandle,
-        BackupFileName.Buffer);
+        &BackupFileName);
 
     if (!NT_SUCCESS(Status))
     {
@@ -83,11 +85,51 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    UNICODE_STRING BackupFileName;
+    RPC_UNICODE_STRING BackupFileName;
+
+    TRACE("%p, %s\n", hEventLog, debugstr_w(lpBackupFileName));
+
+    BackupFileName.Buffer = (LPWSTR)lpBackupFileName;
+    BackupFileName.Length = BackupFileName.MaximumLength =
+        lpBackupFileName ? wcslen(lpBackupFileName) * sizeof(WCHAR) : 0;
+
+    pLog = (PLOG_INFO)hEventLog;
+    if (!pLog)
+    {
+        SetLastError(ERROR_INVALID_HANDLE);
+        return FALSE;
+    }
+    Status = ElfrBackupELFW(
+        pLog->BindingHandle,
+        pLog->LogHandle,
+        &BackupFileName);
+
+    if (!NT_SUCCESS(Status))
+    {
+        SetLastError(RtlNtStatusToDosError(Status));
+        return FALSE;
+    }
+    return TRUE;
+}
+
+
+/******************************************************************************
+ * ClearEventLogA [ADVAPI32.@]
+ */
+BOOL WINAPI
+ClearEventLogA(
+    IN HANDLE hEventLog,
+    IN LPCSTR lpBackupFileName)
+{
+    PLOG_INFO pLog;
+    NTSTATUS Status;
+    RPC_STRING BackupFileName;
 
     TRACE("%p, %s\n", hEventLog, lpBackupFileName);
 
-    RtlInitUnicodeString(&BackupFileName, lpBackupFileName);
+    BackupFileName.Buffer = (LPSTR)lpBackupFileName;
+    BackupFileName.Length = BackupFileName.MaximumLength =
+        lpBackupFileName ? strlen(lpBackupFileName) : 0;
 
     pLog = (PLOG_INFO)hEventLog;
     if (!pLog)
@@ -95,35 +137,37 @@
         SetLastError(ERROR_INVALID_HANDLE);
         return FALSE;
     }
-    Status = ElfrBackupELFW(
+    Status = ElfrClearELFA(
         pLog->BindingHandle,
         pLog->LogHandle,
-        BackupFileName.Buffer);
-
-    if (!NT_SUCCESS(Status))
-    {
-        SetLastError(RtlNtStatusToDosError(Status));
-        return FALSE;
-    }
-    return TRUE;
-}
-
-
-/******************************************************************************
- * ClearEventLogA [ADVAPI32.@]
- */
-BOOL WINAPI
-ClearEventLogA(
-    IN HANDLE hEventLog,
-    IN LPCSTR lpBackupFileName)
-{
-    PLOG_INFO pLog;
-    NTSTATUS Status;
-    ANSI_STRING BackupFileName;
-
-    TRACE("%p, %s\n", hEventLog, lpBackupFileName);
-
-    RtlInitAnsiString(&BackupFileName, lpBackupFileName);
+        &BackupFileName);
+
+    if (!NT_SUCCESS(Status))
+    {
+        SetLastError(RtlNtStatusToDosError(Status));
+        return FALSE;
+    }
+    return TRUE;
+}
+
+
+/******************************************************************************
+ * ClearEventLogW [ADVAPI32.@]
+ */
+BOOL WINAPI
+ClearEventLogW(
+    IN HANDLE hEventLog,
+    IN LPCWSTR lpBackupFileName)
+{
+    PLOG_INFO pLog;
+    NTSTATUS Status;
+    RPC_UNICODE_STRING BackupFileName;
+
+    TRACE("%p, %s\n", hEventLog, debugstr_w(lpBackupFileName));
+
+    BackupFileName.Buffer = (LPWSTR)lpBackupFileName;
+    BackupFileName.Length = BackupFileName.MaximumLength =
+        lpBackupFileName ? wcslen(lpBackupFileName) * sizeof(WCHAR) : 0;
 
     pLog = (PLOG_INFO)hEventLog;
     if (!pLog)
@@ -131,46 +175,10 @@
         SetLastError(ERROR_INVALID_HANDLE);
         return FALSE;
     }
-    Status = ElfrClearELFA(
+    Status = ElfrClearELFW(
         pLog->BindingHandle,
         pLog->LogHandle,
-        BackupFileName.Buffer);
-
-    if (!NT_SUCCESS(Status))
-    {
-        SetLastError(RtlNtStatusToDosError(Status));
-        return FALSE;
-    }
-    return TRUE;
-}
-
-
-/******************************************************************************
- * ClearEventLogW [ADVAPI32.@]
- */
-BOOL WINAPI
-ClearEventLogW(
-    IN HANDLE hEventLog,
-    IN LPCWSTR lpBackupFileName)
-{
-    PLOG_INFO pLog;
-    NTSTATUS Status;
-    UNICODE_STRING BackupFileName;
-
-    TRACE("%p, %s\n", hEventLog, lpBackupFileName);
-
-    RtlInitUnicodeString(&BackupFileName, lpBackupFileName);
-
-    pLog = (PLOG_INFO)hEventLog;
-    if (!pLog)
-    {
-        SetLastError(ERROR_INVALID_HANDLE);
-        return FALSE;
-    }
-    Status = ElfrClearELFW(
-        pLog->BindingHandle,
-        pLog->LogHandle,
-        BackupFileName.Buffer);
+        &BackupFileName);
 
     if (!NT_SUCCESS(Status))
     {
@@ -191,7 +199,7 @@
     PLOG_INFO pLog;
     NTSTATUS Status;
 
-    TRACE("%p", hEventLog);
+    TRACE("%p\n", hEventLog);
 
     pLog = (PLOG_INFO)hEventLog;
     if (!pLog)
@@ -271,7 +279,7 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    long Records;
+    DWORD Records;
 
     TRACE("%p, %p\n", hEventLog, NumberOfRecords);
 
@@ -310,7 +318,7 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    long Oldest;
+    DWORD Oldest;
 
     TRACE("%p, %p\n", hEventLog, OldestRecord);
 
@@ -405,13 +413,13 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    UNICODE_STRING UNCServerName;
-    UNICODE_STRING FileName;
-
-    TRACE("%s, %s\n", lpUNCServerName, lpFileName);
-
-    RtlInitUnicodeString(&UNCServerName, lpUNCServerName);
-    RtlInitUnicodeString(&FileName, lpFileName);
+    RPC_UNICODE_STRING FileName;
+
+    TRACE("%s, %s\n", debugstr_w(lpUNCServerName), debugstr_w(lpFileName));
+
+    FileName.Buffer = (LPWSTR)lpFileName;
+    FileName.Length = FileName.MaximumLength =
+        lpFileName ? wcslen(lpFileName) * sizeof(WCHAR) : 0;
 
     pLog = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_INFO));
     if (!pLog)
@@ -446,8 +454,8 @@
 
     Status = ElfrOpenBELW(
         pLog->BindingHandle,
-        UNCServerName.Buffer,
-        FileName.Buffer,
+        (LPWSTR)lpUNCServerName,
+        &FileName,
         0,
         0,
         &pLog->LogHandle);
@@ -509,13 +517,13 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    UNICODE_STRING UNCServerName;
-    UNICODE_STRING SourceName;
-
-    TRACE("%s, %s\n", lpUNCServerName, lpSourceName);
-
-    RtlInitUnicodeString(&UNCServerName, lpUNCServerName);
-    RtlInitUnicodeString(&SourceName, lpSourceName);
+    RPC_UNICODE_STRING SourceName;
+
+    TRACE("%s, %s\n", debugstr_w(lpUNCServerName), debugstr_w(lpSourceName));
+
+    SourceName.Buffer = (LPWSTR)lpSourceName;
+    SourceName.Length = SourceName.MaximumLength =
+        lpSourceName ? wcslen(lpSourceName) * sizeof(WCHAR) : 0;
 
     pLog = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_INFO));
     if (!pLog)
@@ -550,8 +558,8 @@
 
     Status = ElfrOpenELW(
         pLog->BindingHandle,
-        UNCServerName.Buffer,
-        SourceName.Buffer,
+        (LPWSTR)lpUNCServerName,
+        &SourceName,
         NULL,
         0,
         0,
@@ -582,7 +590,7 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    long bytesRead, minNumberOfBytesNeeded;
+    DWORD bytesRead, minNumberOfBytesNeeded;
 
     TRACE("%p, %lu, %lu, %p, %lu, %p, %p\n",
         hEventLog, dwReadFlags, dwRecordOffset, lpBuffer,
@@ -639,7 +647,7 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    long bytesRead, minNumberOfBytesNeeded;
+    DWORD bytesRead, minNumberOfBytesNeeded;
 
     TRACE("%p, %lu, %lu, %p, %lu, %p, %p\n",
         hEventLog, dwReadFlags, dwRecordOffset, lpBuffer,
@@ -726,13 +734,13 @@
 {
     PLOG_INFO pLog;
     NTSTATUS Status;
-    UNICODE_STRING UNCServerName;
-    UNICODE_STRING SourceName;
-
-    TRACE("%s, %s\n", lpUNCServerName, lpSourceName);
-
-    RtlInitUnicodeString(&UNCServerName, lpUNCServerName);
-    RtlInitUnicodeString(&SourceName, lpSourceName);
+    RPC_UNICODE_STRING SourceName;
+
+    TRACE("%s, %s\n", debugstr_w(lpUNCServerName), debugstr_w(lpSourceName));
+
+    SourceName.Buffer = (LPWSTR)lpSourceName;
+    SourceName.Length = SourceName.MaximumLength =
+        lpSourceName ? wcslen(lpSourceName) * sizeof(WCHAR) : 0;
 
     pLog = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_INFO));
     if (!pLog)
@@ -767,9 +775,9 @@
 
     Status = ElfrRegisterEventSourceW(
         pLog->BindingHandle,
-        UNCServerName.Buffer,
-        SourceName.Buffer,
-        L"",
+        (LPWSTR)lpUNCServerName,
+        &SourceName,
+        NULL,
         0,
         0,
         &pLog->LogHandle);

Modified: trunk/reactos/include/reactos/idl/eventlogrpc.idl
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/idl/eventlogrpc.idl?rev=33585&r1=33584&r2=33585&view=diff
==============================================================================
--- trunk/reactos/include/reactos/idl/eventlogrpc.idl [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/idl/eventlogrpc.idl [iso-8859-1] Sun May 18 10:29:53 2008
@@ -1,306 +1,307 @@
 /*
- *  Copyright 2005 Saveliy Tretiakov
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Event Log RPC interface definition
  */
 
+#include <ms-dtyp.idl>
+
+cpp_quote("#if !defined(__EVENTLOG_H__) && !defined(__ADVAPI32_H)")
+typedef long NTSTATUS;
+cpp_quote("#endif")
+
+#define MAX_BATCH_BUFF 0x0007FFFF
+
+typedef [range(0, MAX_BATCH_BUFF)] unsigned long RULONG;
+typedef struct _RPC_STRING {
+    USHORT Length;
+    USHORT MaximumLength;
+    [size_is(MaximumLength), length_is(Length)] LPSTR Buffer;
+} RPC_STRING, *PRPC_STRING;
+
+typedef [context_handle] unsigned long IELF_HANDLE;
+typedef IELF_HANDLE *PIELF_HANDLE;
+typedef [handle, unique] LPWSTR EVENTLOG_HANDLE_W;
+typedef [handle, unique] LPSTR EVENTLOG_HANDLE_A;
+
+typedef struct _RPC_CLIENT_ID {
+    DWORD UniqueProcess;
+    DWORD UniqueThread;
+} RPC_CLIENT_ID, *PRPC_CLIENT_ID;
+
 [
-	uuid(82273FDC-E32A-18C3-3F78-827929DC23EA),
-	version(0.0),
-	pointer_default(unique)
-#ifndef __midl
-	,explicit_handle
+    uuid(82273FDC-E32A-18C3-3F78-827929DC23EA),
+    version(0.0),
+    pointer_default(unique)
+#ifndef __midl
+    ,explicit_handle
 #endif
 ]
 
 interface eventlog
 {
-	cpp_quote("#if 0")
-#ifdef __midl
-	typedef [handle, unique] wchar_t *LPWSTR;
-	typedef [handle, unique] char *LPSTR;
-	typedef unsigned int NTSTATUS;
-#else
-	#define LPWSTR wchar_t *
-	#define LPSTR char *
-	#define NTSTATUS long
-#endif
-
-#ifdef __midl
-	typedef struct _UNICODE_STRING {
-		unsigned short Length;
-		unsigned short MaximumLength;
-		[size_is(MaximumLength/2), unique] wchar_t *Buffer;
-	} UNICODE_STRING, *PUNICODE_STRING;
-
-	typedef struct _ANSI_STRING {
-		unsigned short Length;
-		unsigned short MaximumLength;
-		[size_is(MaximumLength), unique] char *Buffer;
-	} ANSI_STRING, *PANSI_STRING;
-#else
-	#define PUNICODE_STRING wchar_t *
-	#define PANSI_STRING char *
-#endif
-	cpp_quote("#endif")
-
-#ifdef __midl
-	typedef [context_handle] struct _LOGHANDLE {
-		int pos;
-	} *LOGHANDLE;
-	typedef LOGHANDLE *PLOGHANDLE;
-#else
-	#define LOGHANDLE unsigned int
-	#define PLOGHANDLE unsigned int*
-	cpp_quote("typedef unsigned int LOGHANDLE, *PLOGHANDLE;")
-#endif
-
-	/* Function 0x00 */
-	NTSTATUS ElfrClearELFW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] PUNICODE_STRING BackupName);
-
-	/* Function 0x01 */
-	NTSTATUS ElfrBackupELFW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] PUNICODE_STRING BackupName);
-
-	/* Function 0x02 */
-	NTSTATUS ElfrCloseEL(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in,out] PLOGHANDLE Handle);
-
-	/* Function 0x03 */
-	NTSTATUS ElfrDeregisterEventSource(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in,out] PLOGHANDLE Handle);
-
-	/* Function 0x04 */
-	NTSTATUS ElfrNumberOfRecords(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[out] long *NumberOfRecords);
-
-	/* Function 0x05 */
-	NTSTATUS ElfrOldestRecord(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE LogHandle,
-		[out] long *OldestRecNumber);
-
-	/* Function 0x06 */
-	//NTSTATUS ElfrChangeNotify(); // FIXME
-
-	/* Function 0x07 */
-	NTSTATUS ElfrOpenELW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in, unique] LPWSTR ServerName,
-		[in] PUNICODE_STRING FileName,
-		[in] PUNICODE_STRING NullStr,
-		[in] long MajorVer,
-		[in] long MinorVer,
-		[out] PLOGHANDLE Handle );
-
-	/* Function 0x08 */
-	NTSTATUS ElfrRegisterEventSourceW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in, unique] LPWSTR ServerName,
-		[in] PUNICODE_STRING LogName,
-		[in] PUNICODE_STRING NullStr,
-		[in] long MajorVer,
-		[in] long MinorVer,
-		[out] PLOGHANDLE Handle);
-
-	/* Function 0x09 */
-	NTSTATUS ElfrOpenBELW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in, unique] LPWSTR ServerName,
-		[in] PUNICODE_STRING BackupName,
-		[in] long MajorVer,
-		[in] long MinorVer,
-		[out] PLOGHANDLE Handle);
-
-	/* Function 0x0a */
-	NTSTATUS ElfrReadELW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] long Flags,
-		[in] long Offset,
-		[in] long BufSize,
-		[out,size_is(BufSize)] unsigned char *Buffer,
-		[out] long *BytesRead,
-		[out] long *BytesNeeded);
-
-	/* Function 0x0b */
-	NTSTATUS ElfrReportEventW(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] long Time,
-		[in] short Type,
-		[in] short Category,
-		[in] long ID,
-		[in] short NumStrings,
-		[in] long DataSize,
-		[in] PUNICODE_STRING ComputerName,
-		[in, unique] unsigned char *SID,
-#ifdef __midl
-		[in, size_is(NumStrings), unique] PUNICODE_STRING Strings[*],
-#else
-		[in, size_is(NumStrings), unique] PUNICODE_STRING *Strings,
-#endif
-		[in, size_is(DataSize), unique] unsigned char *Data,
-		[in] short Flags,
-		[in,out,unique] long *unknown1,
-		[in,out,unique] long *unknown2);
-
-	/* Function 0x0c */
-	NTSTATUS ElfrClearELFA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in,unique] PANSI_STRING BackupName);
-
-	/* Function 0x0d */
-	NTSTATUS ElfrBackupELFA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] PANSI_STRING BackupName);
-
-	/* Function 0x0e */
-	NTSTATUS ElfrOpenELA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in, unique] LPSTR ServerName,
-		[in] PANSI_STRING LogName,
-		[in] PANSI_STRING NullStr,
-		[in] long MajorVer,
-		[in] long MinorVer,
-		[out] PLOGHANDLE Handle);
-
-	/* Function 0x0f */
-	NTSTATUS ElfrRegisterEventSourceA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in, unique] LPSTR ServerName,
-		[in] PANSI_STRING LogName,
-		[in] PANSI_STRING NullStr,
-		[in] long MajorVer,
-		[in] long MinorVer,
-		[out] PLOGHANDLE Handle);
-
-	/* Function 0x10 */
-	NTSTATUS ElfrOpenBELA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in, unique] LPSTR ServerName,
-		[in] PANSI_STRING BakckupName,
-		[in] long MajorVer,
-		[in] long MinorVer,
-		[out] PLOGHANDLE Handle);
-
-	/* Function 0x11 */
-	NTSTATUS ElfrReadELA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] long Flags,
-		[in] long Offset,
-		[in] long BufSize,
-		[out,size_is(BufSize)] unsigned char *Buffer,
-		[out] long *BytesRead,
-		[out] long *BytesNeeded);
-
-	/* Function 0x12 */
-	NTSTATUS ElfrReportEventA(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] long Time,
-		[in] short Type,
-		[in] short Category,
-		[in] long ID,
-		[in] short NumStrings,
-		[in] long DataSize,
-		[in] PANSI_STRING ComputerName,
-		[in, unique] unsigned char *SID,
-#ifdef __midl
-		[in, size_is(NumStrings), unique] PANSI_STRING Strings[*],
-#else
-		[in, size_is(NumStrings), unique] PANSI_STRING *Strings,
-#endif
-		[in, size_is(DataSize), unique] unsigned char *Data,
-		[in] short Flags,
-		[in,out,unique] long *unknown1,
-		[in,out,unique] long *unknown2);
-
-	/* Function 0x13 */
-	//NTSTATUS ElfrRegisterClusterSvc(); //FIXME
-
-	/* Function 0x14 */
-	//NTSTATUS ElfrDeregisterClusterSvc(); //FIXME
-
-	/* Function 0x15 */
-	//NTSTATUS ElfrWriteClusterEvents(); //FIXME
-
-	/* Function 0x16 */
-	NTSTATUS ElfrGetLogInformation(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle,
-		[in] long InfoLevel,
-		[out, size_is(BufSize)] unsigned char *Buffer,
-		[in] long BufSize,
-		[out] long *BytesNeeded);
-
-	/* Function 0x17 */
-	NTSTATUS ElfrFlushEL(
-#ifndef __midl
-		handle_t BindingHandle,
-#endif
-		[in] LOGHANDLE Handle);
-
+    /* Function 0 */
+    NTSTATUS ElfrClearELFW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in, unique] PRPC_UNICODE_STRING BackupFileName);
+
+    /* Function 1 */
+     NTSTATUS ElfrBackupELFW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in, unique] PRPC_UNICODE_STRING BackupFileName);
+
+    /* Function 2 */
+    NTSTATUS ElfrCloseEL(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in, out] IELF_HANDLE *LogHandle);
+
+    /* Function 3 */
+    NTSTATUS ElfrDeregisterEventSource(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in, out] IELF_HANDLE *LogHandle);
+
+    /* Function 4 */
+    NTSTATUS ElfrNumberOfRecords(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [out] DWORD *NumberOfRecords);
+
+    /* Function 5 */
+    NTSTATUS ElfrOldestRecord(
+#ifndef __midl
+        handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [out] DWORD *OldestRecordNumber);
+
+    /* Function 6 */
+    NTSTATUS ElfrChangeNotify(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE *LogHandle,
+        [in] RPC_CLIENT_ID ClientId,
+        [in] DWORD Event);
+
+    /* Function 7 */
+    NTSTATUS ElfrOpenELW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] EVENTLOG_HANDLE_W UNCServerName,
+        [in] PRPC_UNICODE_STRING ModuleName,
+        [in] PRPC_UNICODE_STRING RegModuleName,
+        [in] DWORD MajorVersion,
+        [in] DWORD MinorVersion,
+        [out] IELF_HANDLE* LogHandle);
+
+    /* Function 8 */
+    NTSTATUS ElfrRegisterEventSourceW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] EVENTLOG_HANDLE_W UNCServerName,
+        [in] PRPC_UNICODE_STRING ModuleName,
+        [in] PRPC_UNICODE_STRING RegModuleName,
+        [in] DWORD MajorVersion,
+        [in] DWORD MinorVersion,
+        [out] IELF_HANDLE* LogHandle);
+
+    /* Function 9 */
+    NTSTATUS ElfrOpenBELW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] EVENTLOG_HANDLE_W UNCServerName,
+        [in] PRPC_UNICODE_STRING BackupFileName,
+        [in] DWORD MajorVersion,
+        [in] DWORD MinorVersion,
+        [out] IELF_HANDLE* LogHandle);
+
+    /* Function 10 */
+    NTSTATUS ElfrReadELW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in] DWORD ReadFlags,
+        [in] DWORD RecordOffset,
+        [in] RULONG NumberOfBytesToRead,
+        [out, size_is(NumberOfBytesToRead)] BYTE *Buffer,
+        [out] DWORD *NumberOfBytesRead,
+        [out] DWORD *MinNumberOfBytesNeeded);
+
+    /* Function 11 */
+    NTSTATUS ElfrReportEventW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in] DWORD Time,
+        [in] USHORT EventType,
+        [in] USHORT EventCategory,
+        [in] DWORD EventID,
+        [in, range(0, 256)] USHORT NumStrings,
+        [in, range(0, 61440)] DWORD DataSize,
+        [in] PRPC_UNICODE_STRING ComputerName,
+        [in, unique] PRPC_SID UserSID,
+        [in, size_is(NumStrings), unique] PRPC_UNICODE_STRING Strings[*],
+        [in, size_is(DataSize), unique] BYTE *Data,
+        [in] USHORT Flags,
+        [in, out, unique] DWORD *RecordNumber,
+        [in, out, unique] DWORD *TimeWritten);
+
+    /* Function 12 */
+    NTSTATUS ElfrClearELFA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in, unique] PRPC_STRING BackupFileName);
+
+    /* Function 13 */
+     NTSTATUS ElfrBackupELFA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in, unique] PRPC_STRING BackupFileName);
+
+    /* Function 14 */
+    NTSTATUS ElfrOpenELA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] EVENTLOG_HANDLE_A UNCServerName,
+        [in] PRPC_STRING ModuleName,
+        [in] PRPC_STRING RegModuleName,
+        [in] DWORD MajorVersion,
+        [in] DWORD MinorVersion,
+        [out] IELF_HANDLE* LogHandle);
+
+    /* Function 15 */
+    NTSTATUS ElfrRegisterEventSourceA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] EVENTLOG_HANDLE_A UNCServerName,
+        [in] PRPC_STRING ModuleName,
+        [in] PRPC_STRING RegModuleName,
+        [in] DWORD MajorVersion,
+        [in] DWORD MinorVersion,
+        [out] IELF_HANDLE* LogHandle);
+
+    /* Function 16 */
+    NTSTATUS ElfrOpenBELA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] EVENTLOG_HANDLE_A UNCServerName,
+        [in] PRPC_STRING BackupFileName,
+        [in] DWORD MajorVersion,
+        [in] DWORD MinorVersion,
+        [out] IELF_HANDLE* LogHandle);
+
+    /* Function 17 */
+    NTSTATUS ElfrReadELA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in] DWORD ReadFlags,
+        [in] DWORD RecordOffset,
+        [in] RULONG NumberOfBytesToRead,
+        [out, size_is(NumberOfBytesToRead)] BYTE *Buffer,
+        [out] DWORD *NumberOfBytesRead,
+        [out] DWORD *MinNumberOfBytesNeeded);
+
+    /* Function 18 */
+    NTSTATUS ElfrReportEventA(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in] DWORD Time,
+        [in] USHORT EventType,
+        [in] USHORT EventCategory,
+        [in] DWORD EventID,
+        [in, range(0, 256)] USHORT NumStrings,
+        [in, range(0, 61440)] DWORD DataSize,
+        [in] PRPC_STRING ComputerName,
+        [in, unique] PRPC_SID UserSID,
+        [in, size_is(NumStrings), unique] PRPC_STRING Strings[*],
+        [in, size_is(DataSize), unique] BYTE *Data,
+        [in] USHORT Flags,
+        [in, out, unique] DWORD *RecordNumber,
+        [in, out, unique] DWORD *TimeWritten);
+
+    /* Function 19 */
+    NTSTATUS ElfrRegisterClusterSvc(
+#ifndef __midl
+        [in] handle_t BindingHandle
+#endif
+        ); /* FIXME */
+
+    /* Function 20 */
+    NTSTATUS ElfrDeregisterClusterSvc(
+#ifndef __midl
+        [in] handle_t BindingHandle
+#endif
+        ); /* FIXME */
+
+    /* Function 21 */
+    NTSTATUS ElfrWriteClusterEvents(
+#ifndef __midl
+        [in] handle_t BindingHandle
+#endif
+        ); /* FIXME */
+
+    /* Function 22 */
+    NTSTATUS ElfrGetLogInformation(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in] DWORD InfoLevel,
+        [out, size_is(cbBufSize)] BYTE *Buffer,
+        [in, range(0, 1024)] DWORD cbBufSize,
+        [out] DWORD *pcbBytesNeeded);
+
+    /* Function 23 */
+    NTSTATUS ElfrFlushEL(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle);
+
+    /* Function 24 */
+    NTSTATUS ElfrReportEventAndSourceW(
+#ifndef __midl
+        [in] handle_t BindingHandle,
+#endif
+        [in] IELF_HANDLE LogHandle,
+        [in] DWORD Time,
+        [in] USHORT EventType,
+        [in] USHORT EventCategory,
+        [in] ULONG EventID,
+        [in] PRPC_UNICODE_STRING SourceName,
+        [in, range(0, 256)] USHORT NumStrings,
+        [in, range(0, 61440)] DWORD DataSize,
+        [in] PRPC_UNICODE_STRING ComputerName,
+        [in, unique] PRPC_SID UserSID,
+        [in, size_is(NumStrings), unique] PRPC_UNICODE_STRING Strings[*],
+        [in, size_is(DataSize), unique] BYTE *Data,
+        [in] USHORT Flags,
+        [in, out, unique] DWORD *RecordNumber,
+        [in, out, unique] DWORD *TimeWritten);
 }



More information about the Ros-diffs mailing list