windows-nt/Source/XPSP1/NT/net/wins/server/inc/winsevt.h
2020-09-26 16:20:57 +08:00

295 lines
6.7 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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_