📄 bh.h
字号:
//=============================================================================
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1998.
//
// MODULE: bh.h
//
// This is the top-level include file for all Bloodhound components.
//=============================================================================
#if !defined(_BH_)
#define _BH_
#include "naltypes.h" //... Network types.
#include "bhsupp.h" //... Supplemental API's.
#include "nal.h" //... Network definitions.
#include "bhtypes.h" //... Type definitions for BH.
#include "bherr.h" //... Error code definitions for BH.
#include "bhfilter.h" //... Filter definitions.
#include "parser.h" //... Parser helper functions and structures.
#include "inilib.h"
#pragma pack(1)
//=============================================================================
// A frame with no number contains this value as its frame number.
//=============================================================================
#define INVALID_FRAME_NUMBER ((DWORD) -1)
//=============================================================================
// Capture file flags.
//=============================================================================
#define CAPTUREFILE_OPEN OPEN_EXISTING
#define CAPTUREFILE_CREATE CREATE_NEW
//=============================================================================
// TRANSMIT API's.
//=============================================================================
extern LPTRANSMITSTATS WINAPI TransmitFrame(HNETWORK hNetwork,
HFRAME hFrame,
DWORD Iterations,
DWORD TimeDelta,
LPDWORD TxCorrelator);
extern LPTRANSMITSTATS WINAPI TransmitCapture(HNETWORK hNetwork,
HCAPTURE hCapture,
DWORD StartingFrameNumber,
DWORD EndingFrameNumber,
DWORD Iterations,
DWORD IterationTimeDelta,
DWORD TimeDelta,
FILTERPROC FilterProc,
LPVOID FilterInstData,
LPDWORD TxCorrelator);
//=============================================================================
// CAPTURE CONTEXT API's.
//=============================================================================
extern DWORD WINAPI StationQuery(DWORD NetworkID,
LPADDRESS DestAddress,
LPQUERYTABLE QueryTable,
HPASSWORD hPassword);
extern HCAPTURE WINAPI CreateCapture(HWND hWnd,
HBUFFER hBuffer,
HPASSWORD hPassword);
extern DWORD WINAPI DestroyCapture(HCAPTURE hCapture);
extern LPVOID WINAPI GetCaptureInstanceData(HCAPTURE hCapture);
extern HADDRESSDB WINAPI GetCaptureAddressDB(HCAPTURE hCapture);
extern LPSYSTEMTIME WINAPI GetCaptureTimeStamp(HCAPTURE hCapture);
extern DWORD WINAPI GetCaptureTotalFrames(HCAPTURE hCapture);
extern HBUFFER WINAPI GetCaptureBuffer(HCAPTURE hCapture);
extern LPSTR WINAPI GetCaptureComment(HCAPTURE hCapture);
extern DWORD WINAPI LoadCapture(HCAPTURE hCapture, LPSTR FileName);
extern DWORD WINAPI SaveCapture(HCAPTURE hCapture,
LPSTR FileName,
LPSTR lpComment,
LPVOID UserData,
DWORD UserDataLength,
FILTERPROC FilterProc,
LPVOID FilterInstData,
DWORD nFirstFrame,
DWORD nLastFrame);
extern LPVOID WINAPI SetCaptureInstanceData(HCAPTURE hCapture, LPVOID InstData);
extern HADDRESSDB WINAPI SetCaptureAddressDB(HCAPTURE hCapture, HADDRESSDB);
//=============================================================================
// FRAME HELP API's.
//=============================================================================
extern BOOL WINAPI ConvertMacAddress(LPADDRESS Address, DWORD NewAddressType);
extern DWORD WINAPI MacTypeToAddressType(DWORD MacType);
extern DWORD WINAPI AddressTypeToMacType(DWORD AddressType);
extern DWORD WINAPI GetFrameDstAddressOffset(HFRAME hFrame, DWORD AddressType, LPDWORD AddressLength);
extern DWORD WINAPI GetFrameSrcAddressOffset(HFRAME hFrame, DWORD AddressType, LPDWORD AddressLength);
extern HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME hFrame);
extern DWORD WINAPI GetFrameDestAddress(HFRAME hFrame,
LPADDRESS lpAddress,
DWORD AddressType,
DWORD Flags);
extern DWORD WINAPI GetFrameSourceAddress(HFRAME hFrame,
LPADDRESS lpAddress,
DWORD AddressType,
DWORD Flags);
extern DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame);
extern BOOL WINAPI CompareFrameDestAddress(HFRAME hFrame, LPADDRESS lpAddress);
extern BOOL WINAPI CompareFrameSourceAddress(HFRAME hFrame, LPADDRESS lpAddress);
extern DWORD WINAPI GetFrameLength(HFRAME hFrame);
extern DWORD WINAPI GetFrameStoredLength(HFRAME hFrame);
extern DWORD WINAPI GetFrameMacType(HFRAME hFrame);
extern DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame);
extern DWORD WINAPI GetFrameNumber(HFRAME hFrame);
extern LPBYTE WINAPI GetFrameRoutingInformation(HFRAME hFrame, LPDWORD lpRILength);
extern DWORD WINAPI GetFrameTimeStamp(HFRAME hFrame);
extern int WINAPI CompareRawAddresses(LPBYTE Address1, LPBYTE Address2, UINT AddressType);
//=============================================================================
// FRAME API's.
//=============================================================================
extern DWORD WINAPI InsertFrame(HCAPTURE hCapture, HFRAME hFrame, DWORD FrameNumber);
extern DWORD WINAPI DeleteFrame(HCAPTURE hCapture, DWORD FrameNumber);
extern HFRAME WINAPI ModifyFrame(HCAPTURE hCapture,
DWORD FrameNumber,
LPBYTE FrameData,
DWORD FrameLength,
DWORD TimeStamp);
extern HFRAME WINAPI CreateFrame(LPBYTE FrameData, DWORD FrameLength, DWORD TimeStamp);
extern DWORD WINAPI DestroyFrame(HFRAME hFrame);
extern HFRAME WINAPI FindNextFrame(HFRAME hCurrentFrame,
LPSTR ProtocolName,
LPADDRESS lpDesstAddress,
LPADDRESS lpSrcAddress,
LPWORD ProtocolOffset,
DWORD OriginalFrameNumber,
DWORD nHighestFrame);
extern HFRAME WINAPI FindPreviousFrame(HFRAME hCurrentFrame,
LPSTR ProtocolName,
LPADDRESS lpDstAddress,
LPADDRESS lpSrcAddress,
LPWORD ProtocolOffset,
DWORD OriginalFrameNumber,
DWORD nLowestFrame );
extern DWORD WINAPI FrameRecognize(HFRAME hFrame);
extern HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME);
extern HFRAME WINAPI GetFrame(HCAPTURE hCapture, DWORD FrameNumber);
extern LPRECOGNIZEDATATABLE WINAPI GetFrameRecognizeData(HFRAME hFrame);
extern LPBYTE WINAPI LockFrame(HFRAME hFrame);
extern LPPROPERTYTABLE WINAPI LockFrameText(HFRAME hFrame);
extern LPPROPERTYTABLE WINAPI LockFramePropertyTable(HFRAME hFrame);
extern DWORD WINAPI UnlockFrame(HFRAME hFrame);
extern DWORD WINAPI UnlockFrameText(HFRAME hFrame);
extern DWORD WINAPI UnlockFramePropertyTable(HFRAME hFrame);
//=============================================================================
// AddFrame() is a special form of insert frame, it add the frame to
// the end of the current capture.
//=============================================================================
INLINE DWORD WINAPI AddFrame(HCAPTURE hCapture, HFRAME hFrame)
{
return InsertFrame(hCapture, hFrame, INVALID_FRAME_NUMBER);
}
#ifdef DEBUG
extern VOID WINAPI DebugShowLocks(HCAPTURE hCapture);
extern VOID WINAPI DebugGetFrameLocks(HFRAME hFrame, LPDWORD lpLocks, LPDWORD lpPropertyTableLocks);
extern BOOL WINAPI DebugIsRemote(HCAPTURE hCapture);
#endif
//=============================================================================
// Protocol API's.
//=============================================================================
extern HPROTOCOL WINAPI CreateProtocol(LPSTR ProtocolName,
LPENTRYPOINTS lpEntryPoints,
DWORD cbEntryPoints);
extern VOID WINAPI DestroyProtocol(HPROTOCOL hProtocol);
extern DWORD WINAPI DisableProtocol(HCAPTURE hCapture, HPROTOCOL hProtocol);
extern DWORD WINAPI EnableProtocol(HCAPTURE hCapture, HPROTOCOL hProtocol);
extern LPPROTOCOLTABLE WINAPI EnumProtocols(VOID);
extern LPPROTOCOLINFO WINAPI GetProtocolInfo(HPROTOCOL hProtocol);
extern LPSTR WINAPI GetProtocolDLLName(HPROTOCOL hProtocol);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -