[SDK:IDL]: Fix the event log RPC IDL file definitions:

- ElfrChangeNotify takes a IELF_HANDLE handle as its first parameter, not a pointer to it.
- Since we already use NT-like types (especially for USHORT variables), do the same for the other parameters (DWORD -> ULONG), and also use the Pxxx for pointers to xxx.
- Use Windows 2003 maximum size (0x3FFFF) for the event data to be written, instead of the Vista+ limit that is much smaller (0xF000). See also revisions r72207 and r72209.
CORE-11839 #resolve

svn path=/trunk/; revision=72211
This commit is contained in:
Hermès Bélusca-Maïto 2016-08-12 17:22:15 +00:00
parent 8402a33700
commit 6fe74528cb

View file

@ -8,7 +8,9 @@ cpp_quote("#if !defined(__EVENTLOG_H__) && !defined(__ADVAPI32_H)")
typedef long NTSTATUS;
cpp_quote("#endif")
#define MAX_BATCH_BUFF 0x0007FFFF
#define MAX_STRINGS 0x00000100
#define MAX_SINGLE_EVENT 0x0003FFFF // On Vista+ this is reduced to 0x0000F000
#define MAX_BATCH_BUFF 0x0007FFFF
typedef [range(0, MAX_BATCH_BUFF)] unsigned long RULONG;
typedef struct _RPC_STRING {
@ -23,8 +25,8 @@ typedef [handle, unique] LPWSTR EVENTLOG_HANDLE_W;
typedef [handle, unique] LPSTR EVENTLOG_HANDLE_A;
typedef struct _RPC_CLIENT_ID {
DWORD UniqueProcess;
DWORD UniqueThread;
ULONG UniqueProcess;
ULONG UniqueThread;
} RPC_CLIENT_ID, *PRPC_CLIENT_ID;
[
@ -51,80 +53,80 @@ interface eventlog
/* Function 2 */
NTSTATUS ElfrCloseEL(
[in, out] IELF_HANDLE *LogHandle);
[in, out] PIELF_HANDLE LogHandle);
/* Function 3 */
NTSTATUS ElfrDeregisterEventSource(
[in, out] IELF_HANDLE *LogHandle);
[in, out] PIELF_HANDLE LogHandle);
/* Function 4 */
NTSTATUS ElfrNumberOfRecords(
[in] IELF_HANDLE LogHandle,
[out] DWORD *NumberOfRecords);
[out] PULONG NumberOfRecords);
/* Function 5 */
NTSTATUS ElfrOldestRecord(
[in] IELF_HANDLE LogHandle,
[out] DWORD *OldestRecordNumber);
[out] PULONG OldestRecordNumber);
/* Function 6 */
NTSTATUS ElfrChangeNotify(
[in] IELF_HANDLE *LogHandle,
[in] IELF_HANDLE LogHandle,
[in] RPC_CLIENT_ID ClientId,
[in] DWORD Event);
[in] ULONG Event);
/* Function 7 */
NTSTATUS ElfrOpenELW(
[in, unique] EVENTLOG_HANDLE_W UNCServerName, /* FIXME */
[in] PRPC_UNICODE_STRING ModuleName,
[in] PRPC_UNICODE_STRING RegModuleName,
[in] DWORD MajorVersion,
[in] DWORD MinorVersion,
[out] IELF_HANDLE* LogHandle);
[in] ULONG MajorVersion,
[in] ULONG MinorVersion,
[out] PIELF_HANDLE LogHandle);
/* Function 8 */
NTSTATUS ElfrRegisterEventSourceW(
[in, unique] EVENTLOG_HANDLE_W UNCServerName, /* FIXME */
[in] PRPC_UNICODE_STRING ModuleName,
[in] PRPC_UNICODE_STRING RegModuleName,
[in] DWORD MajorVersion,
[in] DWORD MinorVersion,
[out] IELF_HANDLE* LogHandle);
[in] ULONG MajorVersion,
[in] ULONG MinorVersion,
[out] PIELF_HANDLE LogHandle);
/* Function 9 */
NTSTATUS ElfrOpenBELW(
[in, unique] EVENTLOG_HANDLE_W UNCServerName, /* FIXME */
[in] PRPC_UNICODE_STRING BackupFileName,
[in] DWORD MajorVersion,
[in] DWORD MinorVersion,
[out] IELF_HANDLE* LogHandle);
[in] ULONG MajorVersion,
[in] ULONG MinorVersion,
[out] PIELF_HANDLE LogHandle);
/* Function 10 */
NTSTATUS ElfrReadELW(
[in] IELF_HANDLE LogHandle,
[in] DWORD ReadFlags,
[in] DWORD RecordOffset,
[in] ULONG ReadFlags,
[in] ULONG RecordOffset,
[in] RULONG NumberOfBytesToRead,
[out, size_is(NumberOfBytesToRead)] BYTE *Buffer,
[out] DWORD *NumberOfBytesRead,
[out] DWORD *MinNumberOfBytesNeeded);
[out, size_is(NumberOfBytesToRead)] PBYTE Buffer,
[out] PULONG NumberOfBytesRead,
[out] PULONG MinNumberOfBytesNeeded);
/* Function 11 */
NTSTATUS ElfrReportEventW(
[in] IELF_HANDLE LogHandle,
[in] DWORD Time,
[in] ULONG Time,
[in] USHORT EventType,
[in] USHORT EventCategory,
[in] DWORD EventID,
[in/*, max_is(256)*/] USHORT NumStrings,
[in, range(0, 61440)] DWORD DataSize,
[in] ULONG EventID,
[in, range(0, MAX_STRINGS)] USHORT NumStrings,
[in, range(0, MAX_SINGLE_EVENT)] ULONG 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, size_is(DataSize), unique] PBYTE Data,
[in] USHORT Flags,
[in, out, unique] DWORD *RecordNumber,
[in, out, unique] DWORD *TimeWritten);
[in, out, unique] PULONG RecordNumber,
[in, out, unique] PULONG TimeWritten);
/* Function 12 */
NTSTATUS ElfrClearELFA(
@ -141,53 +143,53 @@ interface eventlog
[in, unique] EVENTLOG_HANDLE_A UNCServerName, /* FIXME */
[in] PRPC_STRING ModuleName,
[in] PRPC_STRING RegModuleName,
[in] DWORD MajorVersion,
[in] DWORD MinorVersion,
[out] IELF_HANDLE* LogHandle);
[in] ULONG MajorVersion,
[in] ULONG MinorVersion,
[out] PIELF_HANDLE LogHandle);
/* Function 15 */
NTSTATUS ElfrRegisterEventSourceA(
[in, unique] EVENTLOG_HANDLE_A UNCServerName, /* FIXME */
[in] PRPC_STRING ModuleName,
[in] PRPC_STRING RegModuleName,
[in] DWORD MajorVersion,
[in] DWORD MinorVersion,
[out] IELF_HANDLE* LogHandle);
[in] ULONG MajorVersion,
[in] ULONG MinorVersion,
[out] PIELF_HANDLE LogHandle);
/* Function 16 */
NTSTATUS ElfrOpenBELA(
[in, unique] EVENTLOG_HANDLE_A UNCServerName, /* FIXME */
[in] PRPC_STRING BackupFileName,
[in] DWORD MajorVersion,
[in] DWORD MinorVersion,
[out] IELF_HANDLE* LogHandle);
[in] ULONG MajorVersion,
[in] ULONG MinorVersion,
[out] PIELF_HANDLE LogHandle);
/* Function 17 */
NTSTATUS ElfrReadELA(
[in] IELF_HANDLE LogHandle,
[in] DWORD ReadFlags,
[in] DWORD RecordOffset,
[in] ULONG ReadFlags,
[in] ULONG RecordOffset,
[in] RULONG NumberOfBytesToRead,
[out, size_is(NumberOfBytesToRead)] BYTE *Buffer,
[out] DWORD *NumberOfBytesRead,
[out] DWORD *MinNumberOfBytesNeeded);
[out, size_is(NumberOfBytesToRead)] PBYTE Buffer,
[out] PULONG NumberOfBytesRead,
[out] PULONG MinNumberOfBytesNeeded);
/* Function 18 */
NTSTATUS ElfrReportEventA(
[in] IELF_HANDLE LogHandle,
[in] DWORD Time,
[in] ULONG Time,
[in] USHORT EventType,
[in] USHORT EventCategory,
[in] DWORD EventID,
[in/*, max_is(256)*/] USHORT NumStrings,
[in, range(0, 61440)] DWORD DataSize,
[in] ULONG EventID,
[in, range(0, MAX_STRINGS)] USHORT NumStrings,
[in, range(0, MAX_SINGLE_EVENT)] ULONG 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, size_is(DataSize), unique] PBYTE Data,
[in] USHORT Flags,
[in, out, unique] DWORD *RecordNumber,
[in, out, unique] DWORD *TimeWritten);
[in, out, unique] PULONG RecordNumber,
[in, out, unique] PULONG TimeWritten);
/* Function 19 */
NTSTATUS ElfrRegisterClusterSvc(
@ -204,10 +206,10 @@ interface eventlog
/* Function 22 */
NTSTATUS ElfrGetLogInformation(
[in] IELF_HANDLE LogHandle,
[in] DWORD InfoLevel,
[out, size_is(cbBufSize)] BYTE *Buffer,
[in, range(0, 1024)] DWORD cbBufSize,
[out] DWORD *pcbBytesNeeded);
[in] ULONG InfoLevel,
[out, size_is(cbBufSize)] PBYTE Buffer,
[in, range(0, 1024)] ULONG cbBufSize,
[out] PULONG pcbBytesNeeded);
/* Function 23 */
NTSTATUS ElfrFlushEL(
@ -216,18 +218,18 @@ interface eventlog
/* Function 24 */
NTSTATUS ElfrReportEventAndSourceW(
[in] IELF_HANDLE LogHandle,
[in] DWORD Time,
[in] ULONG Time,
[in] USHORT EventType,
[in] USHORT EventCategory,
[in] ULONG EventID,
[in] PRPC_UNICODE_STRING SourceName,
[in/*, max_is(256)*/] USHORT NumStrings,
[in, range(0, 61440)] DWORD DataSize,
[in, range(0, MAX_STRINGS)] USHORT NumStrings,
[in, range(0, MAX_SINGLE_EVENT)] ULONG 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, size_is(DataSize), unique] PBYTE Data,
[in] USHORT Flags,
[in, out, unique] DWORD *RecordNumber,
[in, out, unique] DWORD *TimeWritten);
[in, out, unique] PULONG RecordNumber,
[in, out, unique] PULONG TimeWritten);
}