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.
 
 
 
 
 
 

101 lines
2.3 KiB

/*++
Copyright (c) 2001 Microsoft Corporation
Abstract:
@doc
@module evtlogwriter.hxx | Declaration of the Event Log writer
@end
Author:
Stefan Steiner [SSteiner] 07/26/2001
TBD:
Follows the similar style as the sql writer.
Revision History:
Name Date Comments
ssteiner 07/26/2001 created
--*/
////////////////////////////////////////////////////////////////////////
// Standard foo for file name aliasing. This code block must be after
// all includes of VSS header files.
//
#ifdef VSS_FILE_ALIAS
#undef VSS_FILE_ALIAS
#endif
#define VSS_FILE_ALIAS "INCEVTWH"
//
////////////////////////////////////////////////////////////////////////
#ifndef __EVTWRITER_H_
#define __EVTWRITER_H_
class CEventLogWriter :
public CVssWriter
{
private:
STDMETHODCALLTYPE CEventLogWriter()
{
}
public:
virtual STDMETHODCALLTYPE ~CEventLogWriter()
{ FreeLogs(); }
virtual bool STDMETHODCALLTYPE OnIdentify(IVssCreateWriterMetadata *pMetadata);
virtual bool STDMETHODCALLTYPE OnPrepareSnapshot();
virtual bool STDMETHODCALLTYPE OnFreeze();
virtual bool STDMETHODCALLTYPE OnThaw();
virtual bool STDMETHODCALLTYPE OnAbort();
bool IsPathInSnapshot(const WCHAR *path) throw();
public:
static HRESULT CreateWriter();
static void DestroyWriter();
private:
HRESULT STDMETHODCALLTYPE Initialize();
HRESULT STDMETHODCALLTYPE Uninitialize();
void TranslateWriterError(HRESULT hr);
void ScanLogs();
void FreeLogs();
void AddExcludes(IVssCreateWriterMetadata* pMetadata);
void AddLogs(IVssCreateWriterMetadata* pMetadata);
void BackupLogs();
static DWORD InitializeThreadFunc( VOID *pv );
struct EventLog
{
EventLog() : m_pwszName(NULL), m_pwszFileName(NULL)
{}
EventLog(VSS_PWSZ name, VSS_PWSZ fileName) : m_pwszName(name), m_pwszFileName(fileName)
{}
VSS_PWSZ m_pwszName;
VSS_PWSZ m_pwszFileName;
};
CSimpleArray<EventLog> m_eventLogs;
static CEventLogWriter *sm_pWriter; // singleton writer object
static HRESULT sm_hrInitialize;
};
#endif // _EVTWRITER_H_