⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bh.h

📁 vc6.0完整版
💻 H
📖 第 1 页 / 共 2 页
字号:

//=============================================================================
//  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 + -