diff --git a/reactos/dll/win32/advapi32/advapi32.spec b/reactos/dll/win32/advapi32/advapi32.spec index 624cf664152..c397a5a0ca0 100644 --- a/reactos/dll/win32/advapi32/advapi32.spec +++ b/reactos/dll/win32/advapi32/advapi32.spec @@ -236,7 +236,7 @@ @ stdcall GetCurrentHwProfileW(ptr) @ stdcall GetEffectiveRightsFromAclA(ptr ptr ptr) @ stdcall GetEffectiveRightsFromAclW(ptr ptr ptr) -@ stub GetEventLogInformation +@ stdcall GetEventLogInformation(long long ptr long ptr) @ stdcall GetExplicitEntriesFromAclA(ptr ptr ptr) advapi32.GetExplicitEntriesFromAclW @ stdcall GetExplicitEntriesFromAclW(ptr ptr ptr) @ stdcall GetFileSecurityA(str long ptr long ptr) diff --git a/reactos/dll/win32/advapi32/service/eventlog.c b/reactos/dll/win32/advapi32/service/eventlog.c index 75a5ff9a520..7a4acb5cc07 100644 --- a/reactos/dll/win32/advapi32/service/eventlog.c +++ b/reactos/dll/win32/advapi32/service/eventlog.c @@ -360,6 +360,29 @@ DeregisterEventSource(IN HANDLE hEventLog) } +/****************************************************************************** + * GetEventLogInformation [ADVAPI32.@] + * + * PARAMS + * hEventLog [I] Handle to event log + * dwInfoLevel [I] Level of event log information to return + * lpBuffer [O] Buffer that receives the event log information + * cbBufSize [I] Size of the lpBuffer buffer + * pcbBytesNeeded [O] Required buffer size + */ +BOOL WINAPI +GetEventLogInformation(IN HANDLE hEventLog, + IN DWORD dwInfoLevel, + OUT LPVOID lpBuffer, + IN DWORD cbBufSize, + OUT LPDWORD pcbBytesNeeded) +{ + UNIMPLEMENTED; + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} + + /****************************************************************************** * GetNumberOfEventLogRecords [ADVAPI32.@] * @@ -376,6 +399,12 @@ GetNumberOfEventLogRecords(IN HANDLE hEventLog, TRACE("%p, %p\n", hEventLog, NumberOfRecords); + if(!NumberOfRecords) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + RpcTryExcept { Status = ElfrNumberOfRecords(hEventLog, @@ -415,6 +444,12 @@ GetOldestEventLogRecord(IN HANDLE hEventLog, TRACE("%p, %p\n", hEventLog, OldestRecord); + if(!OldestRecord) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + RpcTryExcept { Status = ElfrOldestRecord(hEventLog, diff --git a/reactos/include/psdk/winbase.h b/reactos/include/psdk/winbase.h index d483ac8a08a..ca1549f5d20 100644 --- a/reactos/include/psdk/winbase.h +++ b/reactos/include/psdk/winbase.h @@ -1628,6 +1628,7 @@ BOOL WINAPI GetNamedPipeInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD); #if (_WIN32_WINNT >= 0x0501) VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO); #endif +BOOL WINAPI GetEventLogInformation(HANDLE,DWORD,LPVOID,DWORD,LPDWORD); BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD); BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD); BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL);