You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.7 KiB
86 lines
2.7 KiB
/*****************************************************************************\
|
|
|
|
Author: Corey Morgan (coreym)
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
\*****************************************************************************/
|
|
|
|
#include <wmistr.h>
|
|
#include <initguid.h>
|
|
#include <guiddef.h>
|
|
#include <evntrace.h>
|
|
|
|
#define MAXSTR 1024
|
|
#define MAXIMUM_LOGGERS 64 // should be in sync with wmiumkm.h
|
|
|
|
#define PROVIDER_NAME_EVENTTRACE L"TraceLogger"
|
|
|
|
#define DECODE_MODE_WBEM_TO_TRACE 1
|
|
#define DECODE_MODE_TRACE_TO_WBEM 2
|
|
|
|
#define VALUETYPE_INDEX 1
|
|
#define VALUETYPE_FLAG 2
|
|
|
|
#define G_ALLOC( s ) HeapAlloc( GetProcessHeap(), 0, s )
|
|
#define G_FREE( s ) if( s != NULL ) { HeapFree( GetProcessHeap(), 0, s ); }
|
|
|
|
extern GUID gHeapGuid;
|
|
extern GUID gCritSecGuid;
|
|
|
|
ULONG EtsGetMaxEnableFlags();
|
|
HRESULT
|
|
EtsSetExtendedFlags(
|
|
SAFEARRAY *saFlags,
|
|
PEVENT_TRACE_PROPERTIES pLoggerInfo,
|
|
ULONG offset
|
|
);
|
|
|
|
|
|
class CEventTrace : public Provider
|
|
{
|
|
public:
|
|
CEventTrace(LPCWSTR chsClassName, LPCWSTR lpszNameSpace);
|
|
virtual ~CEventTrace();
|
|
|
|
protected:
|
|
virtual HRESULT EnumerateInstances(MethodContext* pMethodContext, long lFlags = 0L);
|
|
virtual HRESULT GetObject(CInstance* pInstance, long lFlags = 0L);
|
|
|
|
virtual HRESULT PutInstance(const CInstance& Instance, long lFlags = 0L);
|
|
|
|
virtual HRESULT ExecMethod( const CInstance& Instance,
|
|
const BSTR bstrMethodName,
|
|
CInstance *pInParams,
|
|
CInstance *pOutParams,
|
|
long lFlags = 0L
|
|
);
|
|
|
|
HRESULT LoadPropertyValues(
|
|
CInstance *pInstance,
|
|
PEVENT_TRACE_PROPERTIES pLoggerInfo,
|
|
PTRACE_GUID_PROPERTIES *GuidPropertiesArray,
|
|
ULONG nGuidCount
|
|
);
|
|
|
|
HRESULT LoadGuidArray(
|
|
PVOID* Storage,
|
|
PULONG pnGuidCount
|
|
);
|
|
|
|
private:
|
|
HRESULT WmiFlushTrace( const CInstance &Instance );
|
|
HRESULT WmiStopTrace( const CInstance &Instance );
|
|
HRESULT WmiEnableTrace( const CInstance &Instance, bool bEnable, SAFEARRAY *saFlags, SAFEARRAY *saLevel, SAFEARRAY *saGuid, TRACEHANDLE LoggerHandle );
|
|
|
|
HRESULT StartGlobalLogger( IN PEVENT_TRACE_PROPERTIES LoggerInfo );
|
|
HRESULT DeleteGlobalLogger( IN PEVENT_TRACE_PROPERTIES LoggerInfo );
|
|
|
|
HRESULT InitTraceProperties( PEVENT_TRACE_PROPERTIES* ppLoggerInfo );
|
|
|
|
HRESULT DecodePropertyValue(
|
|
CInstance* pInstance,
|
|
LPCWSTR szProperty,
|
|
DWORD* pdwValue,
|
|
DWORD dwFlags );
|
|
};
|