📄 bh.h
字号:
extern HPROPERTY WINAPI GetProperty(HPROTOCOL hProtocol, LPSTR PropertyName);
extern HPROTOCOL WINAPI GetProtocolFromProperty(HPROPERTY hProperty);
extern HPROTOCOL WINAPI GetProtocolFromName(LPSTR ProtocolName);
extern DWORD WINAPI GetProtocolStartOffset(HFRAME hFrame, LPSTR ProtocolName);
extern DWORD WINAPI GetProtocolStartOffsetHandle(HFRAME hFrame, HPROTOCOL hProtocol);
extern LPPROTOCOLTABLE WINAPI GetEnabledProtocols(HCAPTURE hCapture);
extern HPROTOCOL WINAPI GetProtocolFromProtocolID(DWORD dwProtocolID);
extern VOID WINAPI SetMaxAmountOfProtocols(DWORD dwAmountOfProtocols);
extern DWORD WINAPI GetMaxAmountOfProtocols();
//=============================================================================
// Property API's.
//=============================================================================
extern DWORD WINAPI CreatePropertyDatabase(HPROTOCOL hProtocol, DWORD nProperties);
extern DWORD WINAPI DestroyPropertyDatabase(HPROTOCOL hProtocol);
extern HPROPERTY WINAPI AddProperty(HPROTOCOL hProtocol, LPPROPERTYINFO PropertyInfo);
extern LPPROPERTYINST WINAPI AttachPropertyInstance(HFRAME hFrame,
HPROPERTY hProperty,
DWORD Length,
ULPVOID lpData,
DWORD HelpID,
DWORD Level,
DWORD IFlags);
extern LPPROPERTYINST WINAPI AttachPropertyInstanceEx(HFRAME hFrame,
HPROPERTY hProperty,
DWORD Length,
ULPVOID lpData,
DWORD ExLength,
ULPVOID lpExData,
DWORD HelpID,
DWORD Level,
DWORD IFlags);
extern LPPROPERTYINST WINAPI FindPropertyInstance(HFRAME hFrame, HPROPERTY hProperty);
extern LPPROPERTYINFO WINAPI GetPropertyInfo(HPROPERTY hProperty);
extern LPSTR WINAPI GetPropertyText(HFRAME hFrame, LPPROPERTYINST lpPI, LPSTR szBuffer, DWORD BufferSize);
extern INT WINAPI QueryProtocolState(HCAPTURE hCapture, HPROTOCOL hProtocol);
//=============================================================================
// ADDRESS API's.
//=============================================================================
extern LPADDRESSINFO WINAPI AddAddress(HADDRESSDB hAddressDB,
LPADDRESS lpAddress,
LPSTR lpName,
LPVOID InstData);
extern HADDRESSDB WINAPI CreateAddressDatabase(VOID);
extern DWORD WINAPI DeleteAddress(HADDRESSDB hAddressDB, LPADDRESS lpAddressToDelete);
extern DWORD WINAPI DestroyAddressDatabase(HADDRESSDB hAddressDB);
extern DWORD WINAPI EmptyAddressDatabase(HADDRESSDB hAddressDB);
extern LPADDRESSINFO WINAPI GetAddressInfo(HADDRESSDB hAddressDB, LPADDRESS lpAddress);
extern LPADDRESSINFO WINAPI GetAddressInfoByName(HADDRESSDB hAddressDB, LPSTR lpName);
extern LPADDRESSINFOTABLE WINAPI EnumAddresses(HADDRESSDB hAddressDB, int SortByType);
extern LPVOID WINAPI GetAddressDatabaseInstanceData(HADDRESSDB hAddressDB);
extern LPVOID WINAPI SetAddressDatabaseInstanceData(HADDRESSDB hAddressDB, LPVOID InstData);
extern LPADDRESSINFO * WINAPI FindAddressInfoByAddress(LPADDRESSINFOTABLE lpAddressInfoTable, LPADDRESS lpAddress);
extern LPADDRESSINFO * WINAPI FindAddressInfoByName(LPADDRESSINFOTABLE lpAddressInfoTable, LPSTR lpName,
LPADDRESS lpSpecificAddress );
//=============================================================================
// MISC. API's.
//=============================================================================
extern LPSTR WINAPI GetSystemPath(LPSTR Path, DWORD Length);
extern DWORD WINAPI GetCaptureCommentFromFilename(LPSTR lpFilename, LPSTR lpComment, DWORD BufferSize);
extern int WINAPI CompareAddresses(LPADDRESS lpAddress1, LPADDRESS lpAddress2);
extern DWORD WINAPIV FormatPropertyInstance(LPPROPERTYINST lpPropertyInst, ...);
extern SYSTEMTIME * WINAPI AdjustSystemTime(SYSTEMTIME *SystemTime, DWORD TimeDelta);
//=============================================================================
// MISC. API's.
//=============================================================================
extern VOID WINAPI eprintf(LPSTR format, ...);
extern VOID WINAPI CreateErrorLogEntry(VOID);
extern DWORD WINAPI BHGetLastError(VOID);
extern DWORD WINAPI BHSetLastError(DWORD Error);
extern DWORD WINAPI ResetPropertyInstanceLength( LPPROPERTYINST lpProp,
WORD nOrgLen,
WORD nNewLen );
//=============================================================================
// DEBUG API's.
//=============================================================================
#ifdef DEBUG
//=============================================================================
// BreakPoint() macro.
//=============================================================================
#ifdef _X86_
#define BreakPoint() _asm { int 3h }
#else
#define BreakPoint() DebugBreak()
#endif
//=============================================================================
// FUNCTION: BhAssert()
//=============================================================================
INLINE VOID BhAssert(
LPVOID assert,
LPSTR file,
UINT line,
LPVOID msg
)
{
if ( msg == NULL )
{
dprintf("ASSERT -- %s occured on line %u of file %s.\n",
assert,
line,
file);
}
else
{
dprintf("ASSERT -- %s occured on line %u of file %s: Message = %s.\n",
assert,
line,
file,
msg);
}
}
//=============================================================================
// MACRO: ASSERT()
//=============================================================================
#define ASSERT(exp) \
{ \
if ( !(exp) ) \
{ \
BhAssert(#exp, __FILE__, __LINE__, NULL); \
BreakPoint(); \
} \
} \
#define ASSERTMSG(exp, msg) \
{ \
if ( !(exp) ) \
{ \
BhAssert(#exp, __FILE__, __LINE__, msg); \
BreakPoint(); \
} \
} \
#else //... DEBUG
#define ASSERT(exp)
#define ASSERTMSG(exp, msg)
#define ASSERT_DWORD_ALIGNMENT(p) (p)
#endif //... DEBUG
//=============================================================================
// PanicPoint().
//=============================================================================
extern VOID WINAPI PanicMessage(UINT line, LPSTR file, LPSTR msg);
#ifdef DEBUG
#define PanicPoint() \
{ \
PanicMessage(__LINE__, __FILE__, NULL); \
BreakPoint(); \
}
#else
#define PanicPoint() \
{ \
PanicMessage(__LINE__, __FILE__, NULL); \
}
#endif
//=============================================================================
// Alignment macro.
//=============================================================================
#ifndef _X86_
#ifdef DEBUG
INLINE LPVOID WINAPI ASSERT_DWORD_ALIGNMENT(LPVOID p)
{
if ( (((DWORD) (p)) & 0x00000003) != 0 )
{
dprintf("Fatal error on line %u of %s. Pointer is not DWORD aligned.", __LINE__, __FILE__);
BreakPoint();
}
return p;
}
#endif
#else
#define ASSERT_DWORD_ALIGNMENT(p) (p)
#endif
#pragma pack()
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -