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

📄 naltypes.h

📁 希望我上传的这些东西可以对搞编程的程序员有点小小的帮助!谢谢!
💻 H
📖 第 1 页 / 共 3 页
字号:
#pragma option push -b -a8 -pc -A- /*P_O_Push*/

//=============================================================================
//  Microsoft (R) Bloodhound. Copyright (C) 1991-1994.
//
//  MODULE: naltypes.h
//
//  This source file contains defintions for the Network Abstraction Layer (NAL).
//
//  NOTE: Do not make changes to this file unless you mahe changes to the
//        NDIS 2.0 driver header files. There are masm equivalents to change.
//=============================================================================

#include "buffer.h"                             //... Include buffer definitions.
#include "bherr.h"                              //... Bloodhound error codes.
#include "neterr.h"                             //... Network Topology error codes
#ifdef __BORLANDC__
#include "wqueue.h"                             //... Queuing functions.
#else
#include "queue.h"                              //... Queuing functions.
#endif

#if !defined(_NALTYPES_)

#define _NALTYPES_

#pragma pack(1)

//=============================================================================
//  NETWORK_MESSAGE_TRIGGER_COMPLETE:
//
//  param1  =  Trigger structure.
//  param2  =  Nothing.
//=============================================================================

#define NETWORK_MESSAGE_TRIGGER_COMPLETE        0

//=============================================================================
//  NETWORK_MESSAGE_TRANSMIT_COMPLETE:
//
//  param1  =  Transmit statistics.
//  param2  =  Packet queue.
//=============================================================================

#define NETWORK_MESSAGE_TRANSMIT_COMPLETE       1

//=============================================================================
//  NETWORK_MESSAGE_RESET_STATE:
//
//  param1  =  RESET_COMPLETE     reset, current net handle now invalid
//             RESET_OPEN         reset, current net handle still valid
//  param2  =  Packet queue.
//=============================================================================

#define NETWORK_MESSAGE_RESET_STATE             2

#define RESET_COMPLETE                          0
#define RESET_OPEN                              1

//=============================================================================
//  NETWORK_MESSAGE_BH_ERROR
//
//  param1  =  BHERR ERROR CODE 
//  param2  =  LPSTR Description (optional pointer to description of error)
//=============================================================================

#define NETWORK_MESSAGE_BH_ERROR                3

//=============================================================================
//  NETWORK_MESSAGE_NETWORK_ERROR
//
//  param1  =  MacType (EtherNet, TokenRing, FDDI, etc.)
//  param2  =  NETERR_ error code (specific to topology)
//=============================================================================

#define NETWORK_MESSAGE_NETWORK_ERROR           4

//=============================================================================
//  The network handle.
//=============================================================================

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

typedef struct _NETWORK         *HNETWORK;

#define HANDLE_TYPE_NETWORK     MAKE_IDENTIFIER('N', 'E', 'T', '$')

//=============================================================================
//  NETWORKSTATE data structure.
//=============================================================================

typedef struct _NETWORKSTATUS
{
    DWORD       State;                                      //... Current state.
    DWORD       Flags;                                      //... Current flags.
    DWORD       TriggerAction;                              //... Trigger action.
    DWORD       TriggerOpcode;                              //... Trigger opcode.
    DWORD       TriggerState;                               //... Trigger state.
    DWORD       BufferSize;                                 //... Capture buffer size.
} NETWORKSTATUS;

typedef NETWORKSTATUS *LPNETWORKSTATUS;

#define NETWORKSTATUS_SIZE   sizeof(NETWORKSTATUS)

#define NETWORKSTATUS_STATE_VOID                0           //... Nothing state.
#define NETWORKSTATUS_STATE_INIT                1           //... Initial state.
#define NETWORKSTATUS_STATE_READY               2           //... Ready state.
#define NETWORKSTATUS_STATE_CAPTURING           3           //... Capturing state.
#define NETWORKSTATUS_STATE_PAUSED              4           //... Paused state.

#define NETWORKSTATUS_FLAGS_TRIGGER_PENDING     0x0001      //... Trigger pending.

//=============================================================================
//  General constants.
//=============================================================================

#define MAC_TYPE_UNKNOWN                        0           //... not supported
#define MAC_TYPE_ETHERNET                       1           //... ethernet and 802.3
#define MAC_TYPE_TOKENRING                      2           //... tokenring (802.5)
#define MAC_TYPE_FDDI                           3           //... fddi.

#define MACHINE_NAME_LENGTH                     16
#define USER_NAME_LENGTH                        32
#define ADAPTER_COMMENT_LENGTH                  32

#define CLOSE_FLAGS_CLOSE                       0x0000
#define CLOSE_FLAGS_SUSPEND                     0x0001

//=============================================================================
//  NAL error codes.
//=============================================================================

#define NAL_SUCCESS                          BHERR_SUCCESS
#define NAL_INVALID_NETWORK_ID               BHERR_INVALID_NETWORK_ID
#define NAL_INVALID_HNETCONTEXT              BHERR_INVALID_HNETWORK
#define NAL_OUT_OF_MEMORY                    BHERR_OUT_OF_MEMORY
#define NAL_NETWORK_BUSY                     BHERR_NETWORK_BUSY
#define NAL_INVALID_HBUFFER                  BHERR_INVALID_HBUFFER
#define NAL_INVALID_PACKET_LENGTH            BHERR_INVALID_PACKET_LENGTH
#define NAL_TRANSMIT_ERROR                   BHERR_TRANSMIT_ERROR
#define NAL_CAPTURE_PAUSED                   BHERR_CAPTURE_PAUSED
#define NAL_CAPTURE_NOT_PAUSED               BHERR_CAPTURE_NOT_PAUSED
#define NAL_CAPTURE_STARTED                  BHERR_CAPTURING
#define NAL_CAPTURE_NOT_STARTED              BHERR_NOT_CAPTURING
#define NAL_MSDOS_DRIVER_NOT_LOADED          BHERR_MSDOS_DRIVER_NOT_LOADED
#define NAL_WINDOWS_DRIVER_NOT_LOADED        BHERR_WINDOWS_DRIVER_NOT_LOADED
#define NAL_MSDOS_DRIVER_INIT_FAILURE        BHERR_MSDOS_DRIVER_INIT_FAILURE
#define NAL_WINDOWS_DRIVER_INIT_FAILURE      BHERR_WINDOWS_DRIVER_INIT_FAILURE
#define NAL_PROMISCUOUS_MODE_NOT_SUPPORTED   BHERR_PROMISCUOUS_MODE_NOT_SUPPORTED
#define NAL_MAC_DRIVER_OPEN_FAILURE          BHERR_MAC_DRIVER_OPEN_FAILURE
#define NAL_PENDING                          BHERR_PENDING
#define NAL_INTERNAL_EXCEPTION               BHERR_INTERNAL_EXCEPTION

//=============================================================================
//  Trigger codes.
//=============================================================================

#define TRIGGER_OFF                                     0
#define TRIGGER_ON_PATTERN_MATCH                        1
#define TRIGGER_ON_BUFFER_CONTENT                       2
#define TRIGGER_ON_PATTERN_MATCH_THEN_BUFFER_CONTENT    3
#define TRIGGER_ON_BUFFER_CONTENT_THEN_PATTERN_MATCH    4

#define TRIGGER_STATE_NOTHING                           0
#define TRIGGER_STATE_STOP_CAPTURE                      1
#define TRIGGER_STATE_PAUSE_CAPTURE                     2

#define TRIGGER_ACTION_NOTIFY                           0
#define TRIGGER_ACTION_EXECUTE_COMMAND                  1

//=============================================================================
//  Handle defintions.
//=============================================================================

typedef LPVOID HNETCONTEXT;

//=============================================================================
//  Transmit statistics structure.
//=============================================================================

typedef struct _TRANSMITSTATS
{
    DWORD       TotalFramesSent;
    DWORD       TotalBytesSent;
    DWORD       TotalTransmitErrors;
} TRANSMITSTATS;

typedef TRANSMITSTATS *LPTRANSMITSTATS;

#define TRANSMITSTATS_SIZE   sizeof(TRANSMITSTATS)

//=============================================================================
//  Statistics structure.
//=============================================================================

typedef struct _STATISTICS
{
    //=========================================================================
    //  Statistics kept by BH driver.
    //=========================================================================

    DWORD           TimeElapsed;

    //...           Buffered statistics

    DWORD           TotalFramesCaptured;
    DWORD           TotalBytesCaptured;

    //...           Filtered statistics

    DWORD           TotalFramesFiltered;
    DWORD           TotalBytesFiltered;

    //...           Overall statistics.

    DWORD           TotalFramesSeen;
    DWORD           TotalBytesSeen;

    DWORD           TotalMulticastsReceived;
    DWORD           TotalBroadcastsReceived;

    DWORD           TotalFramesDropped;
    DWORD           TotalFramesDroppedFromBuffer;

    //=========================================================================
    //  Statistics kept by MAC driver.
    //=========================================================================


    DWORD           MacFramesReceived;
    DWORD           MacCRCErrors;

    union
    {
        DWORD           MacBytesReceived;
        LARGE_INTEGER   MacBytesReceivedEx;
    };

    DWORD           MacFramesDropped_NoBuffers;
    DWORD           MacMulticastsReceived;
    DWORD           MacBroadcastsReceived;
    DWORD           MacFramesDropped_HwError;
} STATISTICS;

typedef STATISTICS *LPSTATISTICS;

#define STATISTICS_SIZE   sizeof(STATISTICS)

//=============================================================================
//  Protocol statistics structure.
//=============================================================================

typedef struct _PROTOCOLSTAT
{
    DWORD       ProtocolID;
    DWORD       ProtocolFramesCaptured;
    DWORD       ProtocolBytesCaptured;
} PROTOCOLSTAT;

typedef PROTOCOLSTAT *LPPROTOCOLSTAT;

#define PROTOCOLSTAT_SIZE   sizeof(PROTOCOLSTAT)

typedef struct _PROTOCOL_STATISTICS_TABLE
{
    DWORD           nProtocols;
    LPPROTOCOLSTAT  ProtocolStatistic;
} PROTOCOL_STATISTICS_TABLE;

typedef PROTOCOL_STATISTICS_TABLE *LPPROTOCOL_STATISTICS_TABLE;

#define PROTOCOL_STATISTIC_TABLE_SIZE   sizeof(PROTOCOL_STATISTICS_TABLE)

//=============================================================================
//  Packet data structure.
//=============================================================================

typedef struct _PACKET *LPPACKET;

typedef struct _PACKET
{
    LPBYTE      Frame;                      //... Pointer to entire MAC frame.
    LPVOID      FrameMdl;                   //... Driver-level frame pointer.
    WORD	FrameSize;		    //... Length of frame.
    WORD	ReferenceCount; 	    //... Number of frame references (lock count).
    DWORD       TimeStamp;                  //... Timestamp of frame.
} PACKET;

#define PACKET_SIZE  sizeof(PACKET)

//=============================================================================
//  StatFrame type.
//=============================================================================

typedef struct _FRAMEHDR
{
    BYTE    SrcAddress[6];
    BYTE    DstAddress[6];
    WORD    Length;
    BYTE    DSAP;
    BYTE    SSAP;
    BYTE    Control;
    BYTE    ProtocolID[3];
    WORD    EtherType;
} FRAMEHDR;

typedef struct _TRFRAMEHDR
{
    BYTE    AC;
    BYTE    FC;
    BYTE    SrcAddress[6];
    BYTE    DstAddress[6];
    BYTE    DSAP;
    BYTE    SSAP;
    BYTE    Control;
    BYTE    ProtocolID[3];
    WORD    EtherType;
} TRFRAMEHDR;

#define DEFAULT_AC          0x00
#define DEFAULT_FC          0x40
#define DEFAULT_SAP         0xAA
#define DEFAULT_CONTROL     0x03
#define DEFAULT_ETHERTYPE   0x8419

typedef struct _FDDIFRAMEHDR
{
    BYTE    FC;
    BYTE    SrcAddress[6];
    BYTE    DstAddress[6];
    BYTE    DSAP;
    BYTE    SSAP;
    BYTE    Control;
    BYTE    ProtocolID[3];
    WORD    EtherType;

⌨️ 快捷键说明

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