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

📄 bhtypes.h

📁 vc6.0完整版
💻 H
📖 第 1 页 / 共 2 页
字号:
//=============================================================================
//  Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
//
//  MODULE: bhTypes.h
//
//  This is the top-level include file for all Bloodhound struct definitions.
//=============================================================================

#if !defined(_BHTYPE_)

#define _BHTYPE_

#pragma pack(1)

//=============================================================================
//  Unaligned base type definitions.
//=============================================================================

typedef VOID        UNALIGNED   *ULPVOID;
typedef BYTE        UNALIGNED   *ULPBYTE;
typedef WORD        UNALIGNED   *ULPWORD;
typedef DWORD       UNALIGNED   *ULPDWORD;
typedef CHAR        UNALIGNED   *ULPSTR;
typedef SYSTEMTIME  UNALIGNED   *ULPSYSTEMTIME;

//=============================================================================
//  Handle definitions.
//=============================================================================

typedef struct _PARSER     *HPARSER;

typedef struct _FRAMEDESC  *HFRAME;
typedef struct _CAPTURE    *HCAPTURE;
typedef struct _FILTER     *HFILTER;
typedef struct _ADDRESSDB  *HADDRESSDB;
typedef struct _PROTOCOL   *HPROTOCOL;
typedef DWORD               HPROPERTY;

typedef HPROTOCOL          *LPHPROTOCOL;

//=============================================================================
//  GetTableSize() -- The following macro is used to calculate the actual
//                    length of Bloodhound variable-length table structures.
//
//  EXAMPLE:
//
//  GetTableSize(PROTOCOLTABLESIZE, ProtocolTable->nProtocols, sizeof(HPROTOCOL))
//=============================================================================

#define GetTableSize(TableBaseSize, nElements, ElementSize) ((TableBaseSize) + ((nElements) * (ElementSize)))

//=============================================================================
//  Object type identifiers.
//=============================================================================

typedef DWORD OBJECTTYPE;

#ifndef MAKE_IDENTIFIER
#define MAKE_IDENTIFIER(a, b, c, d)     ((DWORD) MAKELONG(MAKEWORD(a, b), MAKEWORD(c, d)))
#endif

#define HANDLE_TYPE_INVALID             MAKE_IDENTIFIER(-1, -1, -1, -1)
#define HANDLE_TYPE_CAPTURE             MAKE_IDENTIFIER('C', 'A', 'P', '$')
#define HANDLE_TYPE_PARSER              MAKE_IDENTIFIER('P', 'S', 'R', '$')
#define HANDLE_TYPE_ADDRESSDB           MAKE_IDENTIFIER('A', 'D', 'R', '$')
#define HANDLE_TYPE_PROTOCOL            MAKE_IDENTIFIER('P', 'R', 'T', '$')
#define HANDLE_TYPE_BUFFER              MAKE_IDENTIFIER('B', 'U', 'F', '$')

//=============================================================================
//  Bloodhound constant definitions.
//=============================================================================

#define INLINE  __inline
#define BHAPI   WINAPI

#define MAX_NAME_LENGTH                 16
#define MAX_ADDR_LENGTH                 6

//=============================================================================
//  Ethernet type (ETYPE) constant definitions.
//=============================================================================

#define ETYPE_LOOP                      0x9000
#define ETYPE_3COM_NETMAP1              0x9001
#define ETYPE_3COM_NETMAP2              0x9002
#define ETYPE_IBM_RT                    0x80D5
#define ETYPE_NETWARE                   0x8137
#define ETYPE_XNS1                      0x0600
#define ETYPE_XNS2                      0x0807
#define ETYPE_3COM_NBP0                 0x3C00
#define ETYPE_3COM_NBP1                 0x3C01
#define ETYPE_3COM_NBP2                 0x3C02
#define ETYPE_3COM_NBP3                 0x3C03
#define ETYPE_3COM_NBP4                 0x3C04
#define ETYPE_3COM_NBP5                 0x3C05
#define ETYPE_3COM_NBP6                 0x3C06
#define ETYPE_3COM_NBP7                 0x3C07
#define ETYPE_3COM_NBP8                 0x3C08
#define ETYPE_3COM_NBP9                 0x3C09
#define ETYPE_3COM_NBP10                0x3C0A
#define ETYPE_IP                        0x0800
#define ETYPE_ARP1                      0x0806
#define ETYPE_ARP2                      0x0807
#define ETYPE_RARP                      0x8035
#define ETYPE_TRLR0                     0x1000
#define ETYPE_TRLR1                     0x1001
#define ETYPE_TRLR2                     0x1002
#define ETYPE_TRLR3                     0x1003
#define ETYPE_TRLR4                     0x1004
#define ETYPE_TRLR5                     0x1005
#define ETYPE_PUP                       0x0200
#define ETYPE_PUP_ARP                   0x0201
#define ETYPE_APPLETALK_ARP             0x80F3
#define ETYPE_APPLETALK_LAP             0x809B
#define ETYPE_SNMP                      0x814C

//=============================================================================
//  LLC (802.2) SAP constant definitions.
//=============================================================================

#define SAP_SNAP                        0xAA
#define SAP_BPDU                        0x42
#define SAP_IBM_NM                      0xF4
#define SAP_IBM_NETBIOS                 0xF0
#define SAP_SNA1                        0x04
#define SAP_SNA2                        0x05
#define SAP_SNA3                        0x08
#define SAP_SNA4                        0x0C
#define SAP_NETWARE1                    0x10
#define SAP_NETWARE2                    0xE0
#define SAP_NETWARE3                    0xFE
#define SAP_IP                          0x06
#define SAP_X25                         0x7E
#define SAP_RPL1                        0xF8
#define SAP_RPL2                        0xFC
#define SAP_UB                          0xFA
#define SAP_XNS                         0x80

//=============================================================================
//  Property constants
//=============================================================================

// data types

#define PROP_TYPE_VOID              0x00
#define PROP_TYPE_SUMMARY           0x01
#define PROP_TYPE_BYTE              0x02
#define PROP_TYPE_WORD              0x03
#define PROP_TYPE_DWORD             0x04
#define PROP_TYPE_LARGEINT          0x05
#define PROP_TYPE_ADDR              0x06
#define PROP_TYPE_TIME              0x07
#define PROP_TYPE_STRING            0x08
#define PROP_TYPE_IP_ADDRESS        0x09
#define PROP_TYPE_IPX_ADDRESS       0x0A
#define PROP_TYPE_BYTESWAPPED_WORD  0x0B
#define PROP_TYPE_BYTESWAPPED_DWORD 0x0C
#define PROP_TYPE_TYPED_STRING      0x0D
#define PROP_TYPE_RAW_DATA          0x0E
#define PROP_TYPE_COMMENT           0x0F
#define PROP_TYPE_SRCFRIENDLYNAME   0x10
#define PROP_TYPE_DSTFRIENDLYNAME   0x11
#define PROP_TYPE_TOKENRING_ADDRESS 0x12
#define PROP_TYPE_FDDI_ADDRESS      0x13
#define PROP_TYPE_ETHERNET_ADDRESS  0x14
#define PROP_TYPE_OBJECT_IDENTIFIER	0x15
#define PROP_TYPE_VINES_IP_ADDRESS  0x16
#define PROP_TYPE_VAR_LEN_SMALL_INT 0x17

// data qualifiers

#define PROP_QUAL_NONE              0x00
#define PROP_QUAL_RANGE             0x01
#define PROP_QUAL_SET               0x02
#define PROP_QUAL_BITFIELD          0x03
#define PROP_QUAL_LABELED_SET       0x04
#define PROP_QUAL_LABELED_BITFIELD  0x08
#define PROP_QUAL_CONST             0x09
#define PROP_QUAL_FLAGS             0x0A
#define PROP_QUAL_ARRAY             0x0B

//=============================================================================
//  LARGEINT structure defined in winnt.h
//=============================================================================

//typedef struct _LARGEINT
//{
//    ULONG LowLong;
//    LONG  HighLong;
//} LARGEINT;
//

typedef LARGE_INTEGER *LPLARGEINT;
typedef LARGE_INTEGER UNALIGNED *ULPLARGEINT;

//=============================================================================
//  Range structure.
//=============================================================================

typedef struct _RANGE
{
    DWORD   MinValue;
    DWORD   MaxValue;
} RANGE;

typedef RANGE *LPRANGE;

//=============================================================================
//  LABELED_BYTE structure
//=============================================================================

typedef struct _LABELED_BYTE
{
    BYTE    Value;
    LPSTR   Label;
} LABELED_BYTE;

typedef LABELED_BYTE *LPLABELED_BYTE;

//=============================================================================
//  LABELED_WORD structure
//=============================================================================

typedef struct _LABELED_WORD
{
    WORD    Value;
    LPSTR   Label;
} LABELED_WORD;

typedef LABELED_WORD *LPLABELED_WORD;

//=============================================================================
//  LABELED_DWORD structure
//=============================================================================

typedef struct _LABELED_DWORD
{
    DWORD   Value;
    LPSTR   Label;
} LABELED_DWORD;

typedef LABELED_DWORD *LPLABELED_DWORD;

//=============================================================================
//  LABELED_LARGEINT structure
//=============================================================================

typedef struct _LABELED_LARGEINT
{
    LARGE_INTEGER   Value;
    LPSTR           Label;
} LABELED_LARGEINT;

typedef LABELED_LARGEINT *LPLABELED_LARGEINT;

//=============================================================================
//  LABELED_SYSTEMTIME structure
//=============================================================================

typedef struct _LABELED_SYSTEMTIME
{
    SYSTEMTIME      Value;
    LPSTR           Label;
} LABELED_SYSTEMTIME;

typedef LABELED_SYSTEMTIME *LPLABELED_SYSTEMTIME;

//=============================================================================
//  LABELED_BIT structure
//=============================================================================

typedef struct _LABELED_BIT
{
    BYTE    BitNumber;          //... Bit number (starts at 0, upto 256 bits).
    LPSTR   LabelOff;           //... Label for bit = 0
    LPSTR   LabelOn;            //... Label for bit = 1
} LABELED_BIT;

typedef LABELED_BIT *LPLABELED_BIT;

//=============================================================================
//  TYPED_STRING structure
//=============================================================================

#define TYPED_STRING_NORMAL     1
#define TYPED_STRING_UNICODE    2

#define TYPED_STRING_EXFLAG     1

typedef struct _TYPED_STRING
{
    BYTE    StringType:7;   // defined above
    BYTE    fStringEx:1;    // we are always Ex... so this is how we ExEx
    LPSTR   lpString;       // the actual string
    BYTE    Byte[0];        // if instEx, then the data would go here.
} TYPED_STRING;

typedef TYPED_STRING *LPTYPED_STRING;

//=============================================================================
//  OBJECT_IDENTIFIER structure
//=============================================================================

typedef struct _OBJECT_IDENTIFIER
{
    DWORD   Length;			// Number of identifiers in the OID
    LPDWORD	lpIdentifier;	// Array of Identifiers
} OBJECT_IDENTIFIER;

typedef OBJECT_IDENTIFIER *LPOBJECT_IDENTIFIER;


//=============================================================================
//  Set structure.
//=============================================================================

typedef struct _SET
{
    DWORD   nEntries;

    union
    {
        //... set of values

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -