Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/advapi32/Makefile.in | 2 +- dlls/advapi32/advapi32.spec | 24 +++--- dlls/advapi32/eventlog.c | 141 -------------------------------- dlls/sechost/Makefile.in | 5 ++ dlls/sechost/sechost.spec | 26 +++--- dlls/sechost/trace.c | 155 ++++++++++++++++++++++++++++++++++++ 6 files changed, 186 insertions(+), 167 deletions(-) create mode 100644 dlls/sechost/trace.c
diff --git a/dlls/advapi32/Makefile.in b/dlls/advapi32/Makefile.in index e530adac4e8..33dbe851c9f 100644 --- a/dlls/advapi32/Makefile.in +++ b/dlls/advapi32/Makefile.in @@ -1,7 +1,7 @@ EXTRADEFS = -D_ADVAPI32_ MODULE = advapi32.dll IMPORTLIB = advapi32 -IMPORTS = kernelbase +IMPORTS = kernelbase sechost DELAYIMPORTS = rpcrt4 EXTRALIBS = $(SECURITY_LIBS)
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec index 5a4344852ee..cb3e856ce98 100644 --- a/dlls/advapi32/advapi32.spec +++ b/dlls/advapi32/advapi32.spec @@ -102,14 +102,14 @@ @ stdcall CloseEventLog (long) @ stdcall CloseServiceHandle(long) # @ stub CloseThreadWaitChainSession -@ stdcall CloseTrace(int64) +@ stdcall -import CloseTrace(int64) @ stdcall CommandLineFromMsiDescriptor(wstr ptr ptr) # @ stub ComputeAccessTokenFromCodeAuthzLevel @ stdcall ControlService(long long ptr) # @ stub ControlServiceExA # @ stub ControlServiceExW -@ stdcall ControlTraceA(int64 str ptr long) -@ stdcall ControlTraceW(int64 wstr ptr long) +@ stdcall -import ControlTraceA(int64 str ptr long) +@ stdcall -import ControlTraceW(int64 wstr ptr long) # @ stub ConvertAccessToSecurityDescriptorA # @ stub ConvertAccessToSecurityDescriptorW # @ stub ConvertSDToStringSDDomainW @@ -265,7 +265,7 @@ @ stub ElfReportEventW @ stdcall EnableTrace(long long long ptr int64) @ stdcall EnableTraceEx(ptr ptr int64 long long int64 int64 long ptr) -@ stdcall EnableTraceEx2(int64 ptr long long int64 int64 long ptr) +@ stdcall -import EnableTraceEx2(int64 ptr long long int64 int64 long ptr) @ stdcall EncryptFileA(str) @ stdcall EncryptFileW(wstr) # @ stub EncryptedFileKeyInfo @@ -550,7 +550,7 @@ @ stdcall -import OpenThreadToken(long long long ptr) # @ stub OpenThreadWaitChainSession @ stdcall -ret64 OpenTraceA(ptr) -@ stdcall -ret64 OpenTraceW(ptr) +@ stdcall -ret64 -import OpenTraceW(ptr) # @ stub OperationEnd # @ stub OperationStart # @ stub PerfAddCounters @@ -587,9 +587,9 @@ @ stdcall -import PrivilegedServiceAuditAlarmW(wstr wstr long ptr long) # @ stub ProcessIdleTasks # @ stub ProcessIdleTasksW -@ stdcall ProcessTrace(ptr long ptr ptr) -@ stdcall QueryAllTracesA(ptr long ptr) -@ stdcall QueryAllTracesW(ptr long ptr) +@ stdcall -import ProcessTrace(ptr long ptr ptr) +@ stdcall -import QueryAllTracesA(ptr long ptr) +@ stdcall -import QueryAllTracesW(ptr long ptr) # @ stub QueryLocalUserServiceName # @ stub QueryRecoveryAgentsOnEncryptedFile # @ stub QuerySecurityAccessMask @@ -772,10 +772,10 @@ @ stdcall StartServiceCtrlDispatcherA(ptr) @ stdcall StartServiceCtrlDispatcherW(ptr) @ stdcall StartServiceW(long long ptr) -@ stdcall StartTraceA(ptr str ptr) -@ stdcall StartTraceW(ptr wstr ptr) +@ stdcall -import StartTraceA(ptr str ptr) +@ stdcall -import StartTraceW(ptr wstr ptr) @ stdcall StopTraceA(int64 str ptr) -@ stdcall StopTraceW(int64 wstr ptr) +@ stdcall -import StopTraceW(int64 wstr ptr) @ stdcall SynchronizeWindows31FilesAndWindowsNTRegistry(long long long long) @ stdcall SystemFunction001(ptr ptr ptr) @ stdcall SystemFunction002(ptr ptr ptr) @@ -820,7 +820,7 @@ @ varargs TraceMessage(int64 long ptr long) ntdll.EtwTraceMessage @ stdcall TraceMessageVa(int64 long ptr long ptr) ntdll.EtwTraceMessageVa # @ stub TraceQueryInformation -@ stdcall TraceSetInformation(int64 long ptr long) +@ stdcall -import TraceSetInformation(int64 long ptr long) # @ stub TreeResetNamedSecurityInfoA @ stdcall TreeResetNamedSecurityInfoW(wstr long long ptr ptr ptr ptr long ptr long ptr) # @ stub TreeSetNamedSecurityInfoA diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c index 6f8d26b5161..e9b04585689 100644 --- a/dlls/advapi32/eventlog.c +++ b/dlls/advapi32/eventlog.c @@ -164,30 +164,6 @@ BOOL WINAPI CloseEventLog( HANDLE hEventLog ) return TRUE; }
-/****************************************************************************** - * ControlTraceW [ADVAPI32.@] - * - * Control a givel event trace session - * - */ -ULONG WINAPI ControlTraceW( TRACEHANDLE hSession, LPCWSTR SessionName, PEVENT_TRACE_PROPERTIES Properties, ULONG control ) -{ - FIXME("(%s, %s, %p, %d) stub\n", wine_dbgstr_longlong(hSession), debugstr_w(SessionName), Properties, control); - return ERROR_SUCCESS; -} - -/****************************************************************************** - * ControlTraceA [ADVAPI32.@] - * - * See ControlTraceW. - * - */ -ULONG WINAPI ControlTraceA( TRACEHANDLE hSession, LPCSTR SessionName, PEVENT_TRACE_PROPERTIES Properties, ULONG control ) -{ - FIXME("(%s, %s, %p, %d) stub\n", wine_dbgstr_longlong(hSession), debugstr_a(SessionName), Properties, control); - return ERROR_SUCCESS; -} - /****************************************************************************** * FlushTraceA [ADVAPI32.@] */ @@ -238,20 +214,6 @@ ULONG WINAPI EnableTraceEx( LPCGUID provider, LPCGUID source, TRACEHANDLE hSessi return ERROR_SUCCESS; }
-/****************************************************************************** - * EnableTraceEx2 [ADVAPI32.@] - */ -ULONG WINAPI EnableTraceEx2( TRACEHANDLE handle, LPCGUID provider, ULONG control, UCHAR level, - ULONGLONG match_any, ULONGLONG match_all, ULONG timeout, - PENABLE_TRACE_PARAMETERS params ) -{ - FIXME("(%s, %s, %u, %u, %s, %s, %u, %p): stub\n", wine_dbgstr_longlong(handle), - debugstr_guid(provider), control, level, wine_dbgstr_longlong(match_any), - wine_dbgstr_longlong(match_all), timeout, params); - - return ERROR_SUCCESS; -} - /****************************************************************************** * EnableTrace [ADVAPI32.@] */ @@ -523,33 +485,6 @@ HANDLE WINAPI OpenEventLogW( LPCWSTR uncname, LPCWSTR source ) return (HANDLE)0xcafe4242; }
-/****************************************************************************** - * QueryAllTracesW [ADVAPI32.@] - * - * Query information for started event trace sessions - * - */ -ULONG WINAPI QueryAllTracesW( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount, PULONG psessioncount ) -{ - FIXME("(%p, %d, %p) stub\n", parray, arraycount, psessioncount); - - if (psessioncount) *psessioncount = 0; - return ERROR_SUCCESS; -} - -/****************************************************************************** - * QueryAllTracesA [ADVAPI32.@] - * - * See QueryAllTracesW. - */ -ULONG WINAPI QueryAllTracesA( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount, PULONG psessioncount ) -{ - FIXME("(%p, %d, %p) stub\n", parray, arraycount, psessioncount); - - if (psessioncount) *psessioncount = 0; - return ERROR_SUCCESS; -} - /****************************************************************************** * ReadEventLogA [ADVAPI32.@] * @@ -727,44 +662,6 @@ BOOL WINAPI ReportEventW( HANDLE hEventLog, WORD wType, WORD wCategory, DWORD dw return TRUE; }
-/****************************************************************************** - * StartTraceW [ADVAPI32.@] - * - * Register and start an event trace session - * - */ -ULONG WINAPI StartTraceW( PTRACEHANDLE pSessionHandle, LPCWSTR SessionName, PEVENT_TRACE_PROPERTIES Properties ) -{ - FIXME("(%p, %s, %p) stub\n", pSessionHandle, debugstr_w(SessionName), Properties); - if (pSessionHandle) *pSessionHandle = 0xcafe4242; - return ERROR_SUCCESS; -} - -/****************************************************************************** - * StartTraceA [ADVAPI32.@] - * - * See StartTraceW. - * - */ -ULONG WINAPI StartTraceA( PTRACEHANDLE pSessionHandle, LPCSTR SessionName, PEVENT_TRACE_PROPERTIES Properties ) -{ - FIXME("(%p, %s, %p) stub\n", pSessionHandle, debugstr_a(SessionName), Properties); - if (pSessionHandle) *pSessionHandle = 0xcafe4242; - return ERROR_SUCCESS; -} - -/****************************************************************************** - * StopTraceW [ADVAPI32.@] - * - * Stop an event trace session - * - */ -ULONG WINAPI StopTraceW( TRACEHANDLE session, LPCWSTR session_name, PEVENT_TRACE_PROPERTIES properties ) -{ - FIXME("(%s, %s, %p) stub\n", wine_dbgstr_longlong(session), debugstr_w(session_name), properties); - return ERROR_SUCCESS; -} - /****************************************************************************** * StopTraceA [ADVAPI32.@] * @@ -798,36 +695,6 @@ TRACEHANDLE WINAPI OpenTraceA( PEVENT_TRACE_LOGFILEA logfile ) return INVALID_PROCESSTRACE_HANDLE; }
-/****************************************************************************** - * OpenTraceW [ADVAPI32.@] - */ -TRACEHANDLE WINAPI OpenTraceW( PEVENT_TRACE_LOGFILEW logfile ) -{ - static int once; - - if (!once++) FIXME("%p: stub\n", logfile); - SetLastError(ERROR_ACCESS_DENIED); - return INVALID_PROCESSTRACE_HANDLE; -} - -/****************************************************************************** - * ProcessTrace [ADVAPI32.@] - */ -ULONG WINAPI ProcessTrace( PTRACEHANDLE HandleArray, ULONG HandleCount, LPFILETIME StartTime, LPFILETIME EndTime) -{ - FIXME("%p %u %p %p: stub\n", HandleArray, HandleCount, StartTime, EndTime); - return ERROR_CALL_NOT_IMPLEMENTED; -} - -/****************************************************************************** - * CloseTrace [ADVAPI32.@] - */ -ULONG WINAPI CloseTrace( TRACEHANDLE handle ) -{ - FIXME("%s: stub\n", wine_dbgstr_longlong(handle)); - return ERROR_INVALID_HANDLE; -} - /****************************************************************************** * EnumerateTraceGuids [ADVAPI32.@] */ @@ -838,11 +705,3 @@ ULONG WINAPI EnumerateTraceGuids(PTRACE_GUID_PROPERTIES *propertiesarray, return ERROR_INVALID_PARAMETER; }
-/****************************************************************************** - * TraceSetInformation [ADVAPI32.@] - */ -ULONG WINAPI TraceSetInformation(TRACEHANDLE handle, TRACE_INFO_CLASS infoclass, VOID* info, ULONG len) -{ - FIXME("%s %d %p %d: stub\n", wine_dbgstr_longlong(handle), infoclass, info, len); - return ERROR_CALL_NOT_IMPLEMENTED; -} diff --git a/dlls/sechost/Makefile.in b/dlls/sechost/Makefile.in index d326188ad3e..9f573ccc2f9 100644 --- a/dlls/sechost/Makefile.in +++ b/dlls/sechost/Makefile.in @@ -1,3 +1,8 @@ MODULE = sechost.dll +IMPORTLIB = sechost +IMPORTS = kernelbase
EXTRADLLFLAGS = -mno-cygwin + +C_SRCS = \ + trace.c diff --git a/dlls/sechost/sechost.spec b/dlls/sechost/sechost.spec index a72f79cd8a0..9261ee721bf 100644 --- a/dlls/sechost/sechost.spec +++ b/dlls/sechost/sechost.spec @@ -24,12 +24,12 @@ @ stdcall ChangeServiceConfigA(long long long long wstr str ptr str str str str) advapi32.ChangeServiceConfigA @ stdcall ChangeServiceConfigW(long long long long wstr wstr ptr wstr wstr wstr wstr) advapi32.ChangeServiceConfigW @ stdcall CloseServiceHandle(long) advapi32.CloseServiceHandle -@ stdcall CloseTrace(int64) advapi32.CloseTrace +@ stdcall CloseTrace(int64) @ stdcall ControlService(long long ptr) advapi32.ControlService @ stub ControlServiceExA @ stub ControlServiceExW -@ stdcall ControlTraceA(int64 str ptr long) advapi32.ControlTraceA -@ stdcall ControlTraceW(int64 wstr ptr long) advapi32.ControlTraceW +@ stdcall ControlTraceA(int64 str ptr long) +@ stdcall ControlTraceW(int64 wstr ptr long) @ stub ConvertSDToStringSDRootDomainW @ stdcall ConvertSecurityDescriptorToStringSecurityDescriptorW(ptr long long ptr ptr) advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW @ stdcall ConvertSidToStringSidW(ptr ptr) advapi32.ConvertSidToStringSidW @@ -85,7 +85,7 @@ @ stub CredpEncodeCredential @ stub CredpEncodeSecret @ stdcall DeleteService(long) advapi32.DeleteService -@ stdcall EnableTraceEx2(int64 ptr long long int64 int64 long ptr) advapi32.EnableTraceEx2 +@ stdcall EnableTraceEx2(int64 ptr long long int64 int64 long ptr) @ stdcall EnumDependentServicesW(long long ptr long ptr ptr) advapi32.EnumDependentServicesW @ stdcall EnumServicesStatusExW(long long long long ptr long ptr ptr ptr wstr) advapi32.EnumServicesStatusExW @ stub EnumerateIdentityProviders @@ -164,10 +164,10 @@ @ stdcall OpenSCManagerW(wstr wstr long) advapi32.OpenSCManagerW @ stdcall OpenServiceA(long str long) advapi32.OpenServiceA @ stdcall OpenServiceW(long wstr long) advapi32.OpenServiceW -@ stdcall -ret64 OpenTraceW(ptr) advapi32.OpenTraceW -@ stdcall ProcessTrace(ptr long ptr ptr) advapi32.ProcessTrace -@ stdcall QueryAllTracesA(ptr long ptr) advapi32.QueryAllTracesA -@ stdcall QueryAllTracesW(ptr long ptr) advapi32.QueryAllTracesW +@ stdcall -ret64 OpenTraceW(ptr) +@ stdcall ProcessTrace(ptr long ptr ptr) +@ stdcall QueryAllTracesA(ptr long ptr) +@ stdcall QueryAllTracesW(ptr long ptr) @ stub QueryLocalUserServiceName @ stdcall QueryServiceConfig2A(long long ptr long ptr) advapi32.QueryServiceConfig2A @ stdcall QueryServiceConfig2W(long long ptr long ptr) advapi32.QueryServiceConfig2W @@ -185,7 +185,7 @@ @ stdcall RegisterServiceCtrlHandlerExA(str ptr ptr) advapi32.RegisterServiceCtrlHandlerExA @ stdcall RegisterServiceCtrlHandlerExW(wstr ptr ptr) advapi32.RegisterServiceCtrlHandlerExW @ stdcall RegisterServiceCtrlHandlerW(wstr ptr) advapi32.RegisterServiceCtrlHandlerW -@ stdcall RegisterTraceGuidsA(ptr ptr ptr long ptr str str ptr) advapi32.RegisterTraceGuidsA +@ stdcall RegisterTraceGuidsA(ptr ptr ptr long ptr str str ptr) ntdll.EtwRegisterTraceGuidsA @ stub ReleaseIdentityProviderEnumContext @ stub RemoveTraceCallback @ stub RpcClientCapabilityCheck @@ -198,11 +198,11 @@ @ stdcall StartServiceCtrlDispatcherA(ptr) advapi32.StartServiceCtrlDispatcherA @ stdcall StartServiceCtrlDispatcherW(ptr) advapi32.StartServiceCtrlDispatcherW @ stdcall StartServiceW(long long ptr) advapi32.StartServiceW -@ stdcall StartTraceA(ptr str ptr) advapi32.StartTraceA -@ stdcall StartTraceW(ptr wstr ptr) advapi32.StartTraceW -@ stdcall StopTraceW(int64 wstr ptr) advapi32.StopTraceW +@ stdcall StartTraceA(ptr str ptr) +@ stdcall StartTraceW(ptr wstr ptr) +@ stdcall StopTraceW(int64 wstr ptr) @ stub SubscribeServiceChangeNotifications @ stub TraceQueryInformation -@ stdcall TraceSetInformation(int64 long ptr long) advapi32.TraceSetInformation +@ stdcall TraceSetInformation(int64 long ptr long) @ stub UnsubscribeServiceChangeNotifications @ stub WaitServiceState diff --git a/dlls/sechost/trace.c b/dlls/sechost/trace.c new file mode 100644 index 00000000000..01733690ac8 --- /dev/null +++ b/dlls/sechost/trace.c @@ -0,0 +1,155 @@ +/* + * Event tracing API + * + * Copyright 1995 Sven Verdoolaege + * Copyright 1998 Juergen Schmied + * Copyright 2003 Mike Hearn + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> +#include "windef.h" +#include "winbase.h" +#include "wmistr.h" +#include "evntrace.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(eventlog); + +/****************************************************************************** + * ControlTraceA (sechost.@) + */ +ULONG WINAPI ControlTraceA( TRACEHANDLE handle, const char *session, + EVENT_TRACE_PROPERTIES *properties, ULONG control ) +{ + FIXME("(%s, %s, %p, %d) stub\n", wine_dbgstr_longlong(handle), debugstr_a(session), properties, control); + return ERROR_SUCCESS; +} + +/****************************************************************************** + * ControlTraceW (sechost.@) + */ +ULONG WINAPI ControlTraceW( TRACEHANDLE handle, const WCHAR *session, + EVENT_TRACE_PROPERTIES *properties, ULONG control ) +{ + FIXME("(%s, %s, %p, %d) stub\n", wine_dbgstr_longlong(handle), debugstr_w(session), properties, control); + return ERROR_SUCCESS; +} + +/****************************************************************************** + * EnableTraceEx2 (sechost.@) + */ +ULONG WINAPI EnableTraceEx2( TRACEHANDLE handle, const GUID *provider, ULONG control, UCHAR level, + ULONGLONG match_any, ULONGLONG match_all, ULONG timeout, + ENABLE_TRACE_PARAMETERS *params ) +{ + FIXME("(%s, %s, %u, %u, %s, %s, %u, %p): stub\n", wine_dbgstr_longlong(handle), + debugstr_guid(provider), control, level, wine_dbgstr_longlong(match_any), + wine_dbgstr_longlong(match_all), timeout, params); + + return ERROR_SUCCESS; +} + +/****************************************************************************** + * QueryAllTracesA (sechost.@) + */ +ULONG WINAPI QueryAllTracesA( EVENT_TRACE_PROPERTIES **properties, ULONG count, ULONG *ret_count ) +{ + FIXME("(%p, %d, %p) stub\n", properties, count, ret_count); + + if (ret_count) *ret_count = 0; + return ERROR_SUCCESS; +} + +/****************************************************************************** + * QueryAllTracesW (sechost.@) + */ +ULONG WINAPI QueryAllTracesW( EVENT_TRACE_PROPERTIES **properties, ULONG count, ULONG *ret_count ) +{ + FIXME("(%p, %d, %p) stub\n", properties, count, ret_count); + + if (ret_count) *ret_count = 0; + return ERROR_SUCCESS; +} + +/****************************************************************************** + * StartTraceA (sechost.@) + */ +ULONG WINAPI StartTraceA( TRACEHANDLE *handle, const char *session, EVENT_TRACE_PROPERTIES *properties ) +{ + FIXME("(%p, %s, %p) stub\n", handle, debugstr_a(session), properties); + if (handle) *handle = 0xcafe4242; + return ERROR_SUCCESS; +} + +/****************************************************************************** + * StartTraceW (sechost.@) + */ +ULONG WINAPI StartTraceW( TRACEHANDLE *handle, const WCHAR *session, EVENT_TRACE_PROPERTIES *properties ) +{ + FIXME("(%p, %s, %p) stub\n", handle, debugstr_w(session), properties); + if (handle) *handle = 0xcafe4242; + return ERROR_SUCCESS; +} + +/****************************************************************************** + * StopTraceW (sechost.@) + */ +ULONG WINAPI StopTraceW( TRACEHANDLE handle, const WCHAR *session, EVENT_TRACE_PROPERTIES *properties ) +{ + FIXME("(%s, %s, %p) stub\n", wine_dbgstr_longlong(handle), debugstr_w(session), properties); + return ERROR_SUCCESS; +} + +/****************************************************************************** + * OpenTraceW (sechost.@) + */ +TRACEHANDLE WINAPI OpenTraceW( EVENT_TRACE_LOGFILEW *logfile ) +{ + static int once; + + if (!once++) FIXME("%p: stub\n", logfile); + SetLastError(ERROR_ACCESS_DENIED); + return INVALID_PROCESSTRACE_HANDLE; +} + +/****************************************************************************** + * ProcessTrace (sechost.@) + */ +ULONG WINAPI ProcessTrace( TRACEHANDLE *handles, ULONG count, FILETIME *start_time, FILETIME *end_time ) +{ + FIXME("%p %u %p %p: stub\n", handles, count, start_time, end_time); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/****************************************************************************** + * CloseTrace (sechost.@) + */ +ULONG WINAPI CloseTrace( TRACEHANDLE handle ) +{ + FIXME("%s: stub\n", wine_dbgstr_longlong(handle)); + return ERROR_INVALID_HANDLE; +} + +/****************************************************************************** + * TraceSetInformation (sechost.@) + */ +ULONG WINAPI TraceSetInformation( TRACEHANDLE handle, TRACE_INFO_CLASS class, void *info, ULONG len ) +{ + FIXME("%s %d %p %d: stub\n", wine_dbgstr_longlong(handle), class, info, len); + return ERROR_CALL_NOT_IMPLEMENTED; +}