176 lines
3.5 KiB
C++
176 lines
3.5 KiB
C++
/*++
|
|
|
|
Copyright (c) 1995-1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Logging.hxx
|
|
|
|
Abstract:
|
|
|
|
This module provides definitions of the server side logging object
|
|
|
|
Author:
|
|
|
|
Terence Kwan ( terryk ) 18-June-1996
|
|
|
|
Environment:
|
|
|
|
User-Mode - Win32
|
|
|
|
Project:
|
|
|
|
Internet Server DLL
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
# ifndef _LOGGING_HXX_
|
|
# define _LOGGING_HXX_
|
|
|
|
typedef
|
|
HANDLE
|
|
(*P_ComLogInitializeLog)(
|
|
LPCSTR pszInstanceName,
|
|
LPCSTR lpszMetabasePath,
|
|
LPVOID pvIMDCOM
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogTerminateLog)(
|
|
IN HANDLE hHandle
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogLogInformation)(
|
|
IN HANDLE hHandle,
|
|
IN const INETLOG_INFORMATION *pInetLogInfo
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogGetConfig)(
|
|
IN HANDLE hHandle,
|
|
IN INETLOG_CONFIGURATIONA *pConfig
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogSetConfig)(
|
|
IN HANDLE hHandle,
|
|
IN const INETLOG_CONFIGURATIONA *pConfig
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogDllStartup)(
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogDllCleanUp)(
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogNotifyChange)(
|
|
IN HANDLE hHandle
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogQueryExtraLogFields)(
|
|
IN HANDLE hHandle,
|
|
IN PCHAR lpszFields,
|
|
IN PDWORD pcbBuf
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*P_ComLogCustomInformation)(
|
|
IN HANDLE hHandle,
|
|
IN DWORD cCount,
|
|
IN PCUSTOM_LOG_DATA pCustomLogData,
|
|
IN LPSTR szHeaderSuffix
|
|
);
|
|
|
|
|
|
class dllexp LOGGING {
|
|
|
|
public:
|
|
|
|
LOGGING( );
|
|
|
|
~LOGGING();
|
|
|
|
BOOL ActivateLogging(
|
|
IN LPCSTR pszServerName,
|
|
IN DWORD dwInstanceId,
|
|
IN LPCSTR pszMetabasePath,
|
|
IN LPVOID pvIMDCOM
|
|
);
|
|
|
|
BOOL ShutdownLogging( VOID);
|
|
BOOL NotifyChange(DWORD);
|
|
|
|
DWORD LogInformation(IN const INETLOG_INFORMATION * pInetLogInfo);
|
|
|
|
DWORD GetConfig( INETLOG_CONFIGURATIONA *pLogConfig );
|
|
|
|
DWORD SetConfig( INETLOG_CONFIGURATIONA *pRpcLogConfig );
|
|
|
|
BOOL IsRequiredExtraLoggingFields();
|
|
|
|
CHAR *QueryExtraLoggingFields();
|
|
|
|
DWORD LogCustomInformation(
|
|
IN DWORD cCount,
|
|
IN PCUSTOM_LOG_DATA pCustomLogData,
|
|
IN LPSTR szHeaderSuffix
|
|
);
|
|
|
|
static DWORD Initialize();
|
|
static DWORD Terminate();
|
|
|
|
private:
|
|
|
|
static HINSTANCE m_hComLogDLL;
|
|
static P_ComLogInitializeLog m_ComLogInitializeLog;
|
|
static P_ComLogTerminateLog m_ComLogTerminateLog;
|
|
static P_ComLogLogInformation m_ComLogLogInformation;
|
|
static P_ComLogGetConfig m_ComLogGetConfig;
|
|
static P_ComLogSetConfig m_ComLogSetConfig;
|
|
static P_ComLogNotifyChange m_ComLogNotifyChange;
|
|
static P_ComLogQueryExtraLogFields m_ComLogQueryExtraLogFields;
|
|
|
|
static P_ComLogDllStartup m_ComLogDllStartup;
|
|
static P_ComLogDllCleanUp m_ComLogDllCleanUp;
|
|
|
|
static P_ComLogCustomInformation m_ComLogCustomInformation;
|
|
|
|
VOID ActOnChange();
|
|
|
|
VOID LockShared() { m_tslock.Lock(TSRES_LOCK_READ); }
|
|
VOID LockExclusive() { m_tslock.Lock(TSRES_LOCK_WRITE); }
|
|
VOID Unlock() { m_tslock.Unlock(); }
|
|
|
|
TS_RESOURCE m_tslock;
|
|
|
|
HANDLE m_Handle;
|
|
BOOL m_fRequiredExtraLoggingFields;
|
|
LPVOID m_pvIMDCOM;
|
|
BOOL m_fMetabaseModified;
|
|
|
|
STR m_strInstanceName;
|
|
STR m_strMetabasePath;
|
|
|
|
CHAR m_szExtraLoggingFields[MAX_PATH];
|
|
}; // class LOGGING
|
|
|
|
# endif // _LOGGING_HXX_
|