windows-nt/Source/XPSP1/NT/admin/snapin/smonlog/smlogcfg/smtprov.h
2020-09-26 16:20:57 +08:00

86 lines
2.3 KiB
C++

/*++
Copyright (C) 1998-1999 Microsoft Corporation
Module Name:
smtprov.h
Abstract:
This object is used to store the list of all current
trace providers in the system.
--*/
#ifndef _CLASS_SMTPROV_
#define _CLASS_SMTPROV_
typedef struct _SLQ_TRACE_PROVIDER {
CString strDescription;
CString strGuid;
INT iIsEnabled;
INT iIsActive;
} SLQ_TRACE_PROVIDER, *PSLQ_TRACE_PROVIDER;
class CSmTraceLogService;
struct IWbemServices;
class CSmTraceProviders : public CObject
{
public:
CSmTraceProviders( CSmTraceLogService* );
virtual ~CSmTraceProviders( void );
DWORD Open ( const CString& rstrMachineName );
DWORD Close ( void );
HRESULT SyncWithConfiguration( void );
HRESULT ConnectToServer( void );
HRESULT GetBootState( INT& );
SLQ_TRACE_PROVIDER* GetProviderInfo( INT );
SLQ_TRACE_PROVIDER* GetKernelProviderInfo( void );
INT GetGenProvCount ( void );
INT IndexFromGuid ( const CString& rstrGuid );
DWORD AddProvider (
const CString& rstrDescription,
const CString& rstrGuid,
INT iIsEnabled,
INT iIsActive);
private:
// Helper class
class CRegisteredGuidData
{
public:
CRegisteredGuidData( void ){};
CString m_strGuid;
INT m_iIsEnabled;
};
typedef CRegisteredGuidData* PREGISTERED_GUID_DATA;
static LPCWSTR m_cszBackslash;
static LPCWSTR m_cszDefaultNamespace;
static LPCWSTR m_cszTraceProviderClass;
static LPCWSTR m_cszRegisteredGuidsClass;
static LPCWSTR m_cszDescription;
static LPCWSTR m_cszGuid;
static LPCWSTR m_cszKernelLogger;
CString m_strMachineName;
IWbemServices* m_pWbemServices;
INT m_iBootState;
CArray<SLQ_TRACE_PROVIDER, SLQ_TRACE_PROVIDER&> m_arrGenTraceProvider;
SLQ_TRACE_PROVIDER m_KernelTraceProvider;
CSmTraceLogService* m_pTraceLogService;
};
#endif //_CLASS_SMTPROV_