295 lines
6.7 KiB
C
295 lines
6.7 KiB
C
|
#ifndef _winsevT_
|
|||
|
#define _WINSEVT_
|
|||
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1989 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
winsevt.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Functions:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Portability:
|
|||
|
|
|||
|
|
|||
|
This module is portable.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Pradeep Bahl (PradeepB) Dec-1992
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
Modification Date Person Description of Modification
|
|||
|
------------------ ------- ---------------------------
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "wins.h"
|
|||
|
|
|||
|
/*
|
|||
|
defines
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
macros
|
|||
|
*/
|
|||
|
|
|||
|
#define WINSFILE TEXT(__FILE__)
|
|||
|
#define WINSLINE __LINE__
|
|||
|
|
|||
|
/*
|
|||
|
WINSEVT_LOG_N_RET_IF_ERR_M -- Logs and Returns with indicated status if
|
|||
|
the return from the function is not as expected.
|
|||
|
*/
|
|||
|
#if 0
|
|||
|
#define WINSEVT_LOG_N_RET_IF_ERR_M(Func_add, Success_Stat, Status_To_Ret, error_str_mo) \
|
|||
|
{ \
|
|||
|
LONG Status_m; \
|
|||
|
if ((Status_m = (Func_add)) != (Success_Stat))\
|
|||
|
{ \
|
|||
|
WinsEvtLogEvt(Status, EVENTLOG_ERROR_TYPE, \
|
|||
|
error_str, WINSFILE, WINSLINE); \
|
|||
|
return((Status_To_Ret)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
#define WINSEVT_LOG_PRINT_D_M(_pStr) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_PRINT_M((_pStr)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_PRINT_M(_pStr) { \
|
|||
|
WINSEVT_STRS_T EvtStrs; \
|
|||
|
EvtStrs.NoOfStrs = 1; \
|
|||
|
EvtStrs.pStr[0] = _pStr; \
|
|||
|
WinsEvtLogEvt(WINS_SUCCESS, \
|
|||
|
EVENTLOG_INFORMATION_TYPE, \
|
|||
|
WINS_EVT_PRINT, \
|
|||
|
WINSFILE, WINSLINE, &EvtStrs); \
|
|||
|
}
|
|||
|
|
|||
|
#define WINSEVT_LOG_INFO_D_M(Status, EvtId) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_INFO_M((Status), (EvtId)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_INFO_M(Status, EvtId) \
|
|||
|
{ \
|
|||
|
LONG Status_m; \
|
|||
|
Status_m = (Status); \
|
|||
|
WinsEvtLogEvt(Status_m, EVENTLOG_INFORMATION_TYPE, \
|
|||
|
(EvtId), WINSFILE, WINSLINE, NULL); \
|
|||
|
}
|
|||
|
/*
|
|||
|
WINSEVT_LOG_M -- Logs the indicated event
|
|||
|
*/
|
|||
|
|
|||
|
#define WINSEVT_LOG_D_M(Status, EvtId) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_M((Status), (EvtId)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_M(Status, EvtId) \
|
|||
|
{ \
|
|||
|
LONG Status_m; \
|
|||
|
Status_m = (Status); \
|
|||
|
WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE, \
|
|||
|
(EvtId), WINSFILE, WINSLINE, NULL); \
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// log one or more strings specified by the EvtStr structure pointed
|
|||
|
// to by pStr (Message is an error message)
|
|||
|
//
|
|||
|
#define WINSEVT_LOG_STR_D_M(EvtId, pStr) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_STR_M((EvtId), (pStr)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_STR_M(EvtId, pStr) \
|
|||
|
WinsEvtLogEvt(WINS_FAILURE, EVENTLOG_ERROR_TYPE, \
|
|||
|
(EvtId), WINSFILE, WINSLINE, (pStr));
|
|||
|
|
|||
|
//
|
|||
|
// log one or more strings specified by the EvtStr structure pointed
|
|||
|
// to by pStr (Message is an informational message)
|
|||
|
//
|
|||
|
#define WINSEVT_LOG_INFO_STR_D_M(EvtId, pStr) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_INFO_STR_M((EvtId), (pStr)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_INFO_STR_M(EvtId, pStr) \
|
|||
|
WinsEvtLogEvt(WINS_SUCCESS, EVENTLOG_INFORMATION_TYPE, \
|
|||
|
(EvtId), WINSFILE, WINSLINE, (pStr));
|
|||
|
/*
|
|||
|
WINSEVT_LOG_IF_ERR_M -- Logs the indicated event
|
|||
|
*/
|
|||
|
|
|||
|
#define WINSEVT_LOG_IF_ERR_D_M(Status, EvtId) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_IF_ERR_M((Status), (EvtId)); \
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_IF_ERR_M(Status, Event_id) \
|
|||
|
{ \
|
|||
|
LONG Status_m; \
|
|||
|
Status_m = (Status); \
|
|||
|
if (Status_m != WINS_SUCCESS) \
|
|||
|
{ \
|
|||
|
WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE, \
|
|||
|
(Event_id), WINSFILE, WINSLINE, NULL); \
|
|||
|
} \
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
WINSEVT_LOG_N_RET_M -- Logs and Returns with indicated status if
|
|||
|
the return from the function is not as expected.
|
|||
|
*/
|
|||
|
|
|||
|
#define WINSEVT_LOG_N_RET_D_M(Func, EvtId, RetStat) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_N_RET_M((Func), (EvtId), (RetStat));\
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_N_RET_M(Func, Event_id, ret_stat) \
|
|||
|
{ \
|
|||
|
LONG Status_m; \
|
|||
|
if (Status_m = (Func)) \
|
|||
|
{ \
|
|||
|
WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE, \
|
|||
|
(Event_id), WINSFILE, WINSLINE, NULL); \
|
|||
|
return(ret_stat); \
|
|||
|
} \
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
WINSEVT_LOG_N_EXIT_M -- Logs and exit
|
|||
|
*/
|
|||
|
|
|||
|
#define WINSEVT_LOG_N_EXIT_D_M(Func, EvtId, RetStat) \
|
|||
|
{ \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WINSEVT_LOG_N_EXIT_M((Func), (EvtId), (RetStat));\
|
|||
|
} \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_N_EXIT_M(Func, Event_id, ret_stat) \
|
|||
|
{ \
|
|||
|
LONG Status_m; \
|
|||
|
if ((Status_m = (Func)) != (WINS_SUCCESS)) \
|
|||
|
{ \
|
|||
|
WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE,\
|
|||
|
(Event_id), WINSFILE, WINSLINE, NULL); \
|
|||
|
Exitprocess(1); \
|
|||
|
} \
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#define WINSEVT_LOG_DET_EVT_M1(_Type, _EvtId, _Fmt, _D1) \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1)); \
|
|||
|
}
|
|||
|
|
|||
|
#define WINSEVT_LOG_DET_EVT_M2(_Type, _EvtId, _Fmt, _D1, _D2) \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1), (_D2)); \
|
|||
|
}
|
|||
|
|
|||
|
#define WINSEVT_LOG_DET_EVT_M3(_Type, _EvtId, _Fmt, _D1, _D2, _D3) \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1), (_D2), (_D3)); \
|
|||
|
}
|
|||
|
#define WINSEVT_LOG_DET_EVT_M3(_Type, _EvtId, _Fmt, _D1, _D2, _D3) \
|
|||
|
if (WinsCnf.LogDetailedEvts > 0) \
|
|||
|
{ \
|
|||
|
WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1), (_D2), (_D3)); \
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Max. number of strings that can be logged
|
|||
|
//
|
|||
|
#define MAX_NO_STRINGS 5
|
|||
|
|
|||
|
/*
|
|||
|
externs
|
|||
|
*/
|
|||
|
|
|||
|
/*
|
|||
|
structure definitions
|
|||
|
*/
|
|||
|
typedef struct _WINSEVT_STRS_T {
|
|||
|
DWORD NoOfStrs;
|
|||
|
LPTSTR pStr[MAX_NO_STRINGS];
|
|||
|
} WINSEVT_STRS_T, *PWINSEVT_STRS_T;
|
|||
|
|
|||
|
/*
|
|||
|
function definitions
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
extern
|
|||
|
VOID
|
|||
|
WinsEvtLogEvt
|
|||
|
(
|
|||
|
LONG StatusCode,
|
|||
|
WORD EvtTyp,
|
|||
|
DWORD EvtId,
|
|||
|
LPTSTR pFileStr, //change to LPTSTR later
|
|||
|
DWORD LineNumber,
|
|||
|
PWINSEVT_STRS_T pStr
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
extern
|
|||
|
VOID
|
|||
|
WinsEvtLogDetEvt(
|
|||
|
BOOL fInfo,
|
|||
|
DWORD EvtId,
|
|||
|
LPTSTR pFileStr,
|
|||
|
DWORD LineNumber,
|
|||
|
LPSTR pFormat,
|
|||
|
...
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
WinsLogAdminEvent(
|
|||
|
IN DWORD EventId,
|
|||
|
IN DWORD StrArgs,
|
|||
|
IN ...
|
|||
|
);
|
|||
|
|
|||
|
#endif //_WINSEVT_
|
|||
|
|