Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (C) 1998-1999 Microsoft Corporation
Module Name:
smlogs.h
Abstract:
Base class representing the Performance Logs and Alerts service.
--*/
#ifndef _CLASS_SMLOGSERVICE_
#define _CLASS_SMLOGSERVICE_
#include "smnode.h"
#include "smlogqry.h" // for query objects in the service
#include <pdhp.h>
class CSmLogService : public CSmNode { // constructor/destructor
public: CSmLogService(); virtual ~CSmLogService();
// public methods
public: virtual DWORD Open ( const CString& rstrMachineName ); virtual DWORD Close ( void ); DWORD Synchronize( void ); BOOL IsRunning( void ); BOOL IsOpen( void ){return m_bIsOpen; }; INT GetQueryCount( void ); const CString& GetDefaultLogFileFolder( void ); DWORD CreateDefaultLogQueries( void ); BOOL IsWindows2000Server ( void ); BOOL CanAccessWbemRemote(); virtual DWORD SyncWithRegistry();
virtual PSLQUERY CreateQuery ( const CString& rstrName ) = 0; virtual DWORD DeleteQuery ( PSLQUERY plQuery ); virtual DWORD DeleteQuery ( const CString& rstrName ); // Unused method
virtual CSmLogService* CastToLogService( void ) { return this; };
// public member variables
public: // list of queries
CTypedPtrList<CPtrList, PSLQUERY> m_QueryList; HRESULT m_hWbemAccessStatus;
protected:
void SetBaseName( const CString& ); // Exception thrown on error
PSLQUERY CreateTypedQuery ( const CString& rstrName, DWORD dwLogType ); virtual DWORD LoadQueries( void ) = 0; DWORD LoadQueries( DWORD dwLogType ); HKEY GetMachineRegistryKey ( void ) { ASSERT ( m_hKeyMachine ); return m_hKeyMachine; }; void SetOpen ( BOOL bOpen ) { m_bIsOpen = bOpen; };
private:
enum ePrivateValue { eResetDelaySeconds = 60, eRestartDelayMilliseconds = 0 };
DWORD GetState( void ); DWORD UpdateConfig(); DWORD Install( const CString& rstrMachineName ); DWORD UnloadQueries ( void ); DWORD LoadDefaultLogFileFolder( void ); DWORD UnloadSingleQuery ( PSLQUERY pQuery ); DWORD LoadSingleQuery ( PSLQUERY* ppQuery, DWORD dwLogType, const CString& rstrName, const CString& rstrLogKeyName, HKEY hKeyQuery, BOOL bNew );
DWORD FindDuplicateQuery ( const CString cstrName, BOOL& rbFound );
CString m_strBaseName; HKEY m_hKeyMachine; HKEY m_hKeyLogService; BOOL m_bReadOnly; BOOL m_bIsOpen;
HKEY m_hKeyLogServiceRoot; CString m_strDefaultLogFileFolder; PLA_VERSION m_OSVersion; };
typedef CSmLogService SLSVC; typedef CSmLogService* PSLSVC;
#endif //_CLASS_SMLOGSERVICE_
|