windows-nt/Source/XPSP1/NT/net/layer2svc/zeroconf/server/tracing.h
2020-09-26 16:20:57 +08:00

115 lines
3.6 KiB
C

#pragma once
#define TRC_NAME TEXT("WZCTrace")
#ifdef DBG
extern UINT g_nLineNo;
extern LPSTR g_szFileName;
#define DbgPrint(params) _DebugPrint params
#define DbgAssert(params) \
{ g_nLineNo = __LINE__; \
g_szFileName = __FILE__; \
_DebugAssert params; \
}
#define DbgBinPrint(params) _DebugBinary params
#else
#define DbgPrint(params)
#define DbgAssert(params)
#define DbgBinPrint(params)
#endif
#define TRC_GENERIC 0x00010000 // logs generic events that did not fit in any other category
#define TRC_TRACK 0x00020000 // logs the code path
#define TRC_MEM 0x00040000 // logs the memory allocations / releases
#define TRC_ERR 0x00080000 // logs error conditions
#define TRC_HASH 0x00100000 // logs hash related stuff
#define TRC_NOTIF 0x00200000 // logs notifications
#define TRC_STORAGE 0x00400000 // logs storage related stuff
#define TRC_SYNC 0x00800000 // logs synchronization related stuff
#define TRC_STATE 0x01000000 // logs state machine related stuff
#define TRC_DATABASE 0x02000000 // logs for database logging
// new log types to be added here.
#define TRC_ASSERT 0x80000000 // logs failed assert conditions
// trace identifier
extern DWORD g_TraceLog;
// debug utility calls
VOID _DebugPrint(DWORD dwFlags, LPCSTR lpFormat, ...);
VOID _DebugAssert(BOOL bChecked, LPCSTR lpFormat, ...);
VOID _DebugBinary(DWORD dwFlags, LPCSTR lpMessage, LPBYTE pBuffer, UINT nBuffLen);
VOID TrcInitialize();
VOID TrcTerminate();
//---------------------------------------------
// Database logging functions
//
#define WZCSVC_DLL "wzcsvc.dll"
typedef struct _Wzc_Db_Record *PWZC_DB_RECORD;
DWORD _DBRecord (
DWORD eventID,
PWZC_DB_RECORD pDbRecord,
va_list *pvaList);
typedef struct _INTF_CONTEXT *PINTF_CONTEXT;
DWORD DbLogWzcError (
DWORD eventID,
PINTF_CONTEXT pIntfContext,
...
);
DWORD DbLogWzcInfo (
DWORD eventID,
PINTF_CONTEXT pIntfContext,
...
);
// number of buffers available for log params formatting
#define DBLOG_SZFMT_BUFFS 10
// lenght of each buffer used to format log params
#define DBLOG_SZFMT_SIZE 256
// utility macro to convert a hexa digit into its value
#define HEX2WCHAR(c) ((c)<=9 ? L'0'+ (c) : L'A' + (c) - 10)
// separator char to be used when formatting a MAC address
#define MAC_SEPARATOR L'-'
// Initializes the WZC_DB_RECORD
DWORD DbLogInitDbRecord(
DWORD dwCategory,
PINTF_CONTEXT pIntfContext,
PWZC_DB_RECORD pDbRecord
);
// Formats an SSID in the given formatting buffer
LPWSTR DbLogFmtSSID(
UINT nBuff, // index of the format buffer to use (0 .. DBLOG_SZFMT_BUFFS)
PNDIS_802_11_SSID pndSSid);
// Formats a BSSID (MAC address) in the given formatting buffer
LPWSTR DbLogFmtBSSID(
UINT nBuff,
NDIS_802_11_MAC_ADDRESS ndBSSID);
// Formats the INTF_CONTEXT::dwCtlFlags field for logging
DWORD DbLogFmtFlags(
LPWSTR wszBuffer, // buffer to place the result into
LPDWORD pnchBuffer, // in: num of chars in the buffer; out: number of chars written to the buffer
DWORD dwFlags); // interface flags to log
// Formats a WZC_WLAN_CONFIG structure for logging
DWORD DbLogFmtWConfig(
LPWSTR wszBuffer, // buffer to place the result into
LPDWORD pnchBuffer, // in: num of chars in the buffer; out: number of chars written to the buffer
PWZC_WLAN_CONFIG pWzcCfg); // WZC_WLAN_CONFIG object to log