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.
|
|
//***************************************************************************
//
// NTEVTTHRD.H
//
// Module: WBEM NT EVENT PROVIDER
//
// Copyright (c) 1996-2001 Microsoft Corporation, All Rights Reserved
//
//***************************************************************************
#ifndef _NT_EVT_PROV_NTEVTTHRD_H
#define _NT_EVT_PROV_NTEVTTHRD_H
class CNTEventProvider; class CEventLogMonitor; class CEventProviderManager; class CMonitoredEventLogFile;
class CControlObjectMap : public CMap< UINT_PTR, UINT_PTR, CNTEventProvider*, CNTEventProvider* > { private:
UINT HashKey(UINT_PTR key) { return key; }
public: CCriticalSection m_Lock; BOOL Lock() { return m_Lock.Lock(); } BOOL Unlock() { return m_Lock.Unlock(); } };
class CEventLogMonitor : public ProvThreadObject { private:
void Initialise(); void Uninitialise(); void TimedOut();
CEventProviderManager* m_pParent; BOOL m_bMonitoring; static const DWORD m_PollTimeOut; CMonitoredEventLogFile** m_Logs; ULONG m_LogCount; CArray<CStringW*, CStringW*> m_LogNames; LONG m_Ref;
public:
CEventLogMonitor(CEventProviderManager* parentptr, CArray<CStringW*, CStringW*>& logs);
void Poll(); void StartMonitoring(); BOOL IsMonitoring() { return m_bMonitoring; } LONG AddRef(); LONG Release();
~CEventLogMonitor(); };
class CEventProviderManager { private:
CControlObjectMap m_ControlObjects; CEventLogMonitor** m_monitorArray; CCriticalSection m_MonitorLock; CStringW m_BootTimeString; BOOL m_IsFirstSinceLogon; BOOL InitialiseMonitorArray(); void DestroyMonitorArray(); BSTR GetLastBootTime();
public:
CEventProviderManager();
void SendEvent(IWbemClassObject* evtObj); BOOL Register(CNTEventProvider* prov); void UnRegister(CNTEventProvider* prov); BOOL IsFirstSinceLogon() { return m_IsFirstSinceLogon; } void SetFirstSinceLogon(IWbemServices *ns, IWbemContext *pCtx);
IWbemServices* GetNamespacePtr(); ~CEventProviderManager();
};
#endif //_NT_EVT_PROV_NTEVTTHRD_H
|