Leaked source code of windows server 2003
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

/*****************************************************************************\
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 );
};