windows-nt/Source/XPSP1/NT/inetsrv/intlwb/thai2/sth/common.h
2020-09-26 16:20:57 +08:00

74 lines
2.1 KiB
C

/****************************** Module Header ******************************\
* Module Name: common.h
*
* Copyright (c) 1985-91, Microsoft Corporation
*
* History:
\***************************************************************************/
#ifndef _COMMON_
#define _COMMON_
extern HANDLE ghHeap;
#ifdef _DEBUG_PRINT
#define _DBGERROR 0x00000001
#define _DBGWARNING 0x00000002
#define _DBGVERBOSE 0x00000004
#define _DBGALL 0xFFFFFFFF
extern ULONG gThDebugFlag;
#define DBGERROR(_params_) {if (gThDebugFlag & _DBGERROR)DbgPrint _params_ ; }
#define DBGWARNING(_params_) {if (gThDebugFlag & _DBGWARNING)DbgPrint _params_ ; }
#define DBGVERBOSE(_params_) {if (gThDebugFlag & _DBGVERBOSE)DbgPrint _params_ ; }
#define DBGPRINT(_params_) DbgPrint _params_
#else
#define DBGERROR(_params_)
#define DBGWARNING(_params_)
#define DBGVERBOSE(_params_)
#define DBGPRINT(_params_)
#endif
// misc defines
//
#define SUCCESS(s) ((s) == ERROR_SUCCESS)
#define NO_SUCCESS(s) ((s) != ERROR_SUCCESS)
#define ThAlloc( cbSize ) HeapAlloc( ghHeap, HEAP_ZERO_MEMORY, (cbSize));
#define ThFree( pv ) HeapFree( ghHeap, 0, (pv));
#define ThReAlloc( pv, cbSize) HeapReAlloc( ghHeap, 0, (pv), (cbSize));
#ifdef _DEBUG
#define MAX_PROCINFO 16
typedef struct _tagBLOCKINFO {
struct _tagBLOCKINFO *pbiNext;
BYTE *pb; // Start of block
ULONG ulSize; // Length of block
BOOL fReferenced; // Ever referenced
PROCESS_INFORMATION ProcInfo[MAX_PROCINFO];
} BLOCKINFO, *PBLOCKINFO;
BOOL fCreateBlockInfo(BYTE *pbNew, ULONG cbSizeNew);
VOID FreeBlockInfo(BYTE *pbToFree);
VOID UpdateBlockInfo(BYTE *pbOld, BYTE *pbNew, ULONG cbSizeNew);
ULONG sizeofBlock(BYTE *pb);
VOID ClearMemoryRefs(VOID);
VOID NoteMemoryRef(VOID *pv);
VOID CheckMemoryRefs(VOID);
BOOL fValidPointer(VOID *pv, ULONG cbSize);
#define bThNewGarbage 0xA3
#define bThOldGarbage 0xA4
#define bThFreeGarbage 0xA5
#define bThDebugByte 0xE1
#define sizeofDebugByte 1
#else
#define sizeofDebugByte 0
#endif
#endif // _COMMON_