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

📄 ndis2.h

📁 libcap是常用的linux抓包程序,属于open source项目.
💻 H
📖 第 1 页 / 共 2 页
字号:

typedef struct _MulticastList {
        WORD   maxMulticastAddresses;
        WORD   numberMulticastAddresses;
        BYTE   multicastAddress[16][16];
      } MulticastList;


typedef struct _MacChars {
        WORD   tableSize;
        BYTE   macName[16];
        WORD   addressLength;
        BYTE   permanentAddress[16];
        BYTE   currentAddress[16];
        DWORD  currentFunctionalAddress;
        MulticastList *multicastList;
        DWORD  linkSpeed;
        DWORD  serviceFlags;
        WORD   maxFrameSize;
        DWORD  txBufferSize;
        WORD   txBufferAllocSize;
        DWORD  rxBufferSize;
        WORD   rxBufferAllocSize;
        BYTE   ieeeVendor[3];
        BYTE   vendorAdapter;
        BYTE  *vendorAdapterDescription;
        WORD   interruptLevel;
        WORD   txQueueDepth;
        WORD   maxDataBlocks;
      } MacChars;


typedef struct _ProtocolChars {
        WORD   length;
        BYTE   name[16];
        WORD   type;
      } ProtocolChars;


typedef struct _MacUpperDispatch {
        CommonChars      *backPointer;
        Request           request;
        TransmitChain     transmitChain;
        TransferData      transferData;
        ReceiveRelease    receiveRelease;
        IndicationOn      indicationOn;
        IndicationOff     indicationOff;
      } MacUpperDispatch;


typedef struct _MacStatusTable {
        WORD   tableSize;
        DWORD  lastDiag;
        DWORD  macStatus;
        WORD   packetFilter;
        BYTE  *mediaSpecificStats;
        DWORD  lastClear;
        DWORD  totalFramesRx;
        DWORD  totalFramesCrc;
        DWORD  totalBytesRx;
        DWORD  totalDiscardBufSpaceRx;
        DWORD  totalMulticastRx;
        DWORD  totalBroadcastRx;
        DWORD  obsolete1[5];
        DWORD  totalDiscardHwErrorRx;
        DWORD  totalFramesTx;
        DWORD  totalBytesTx;
        DWORD  totalMulticastTx;
        DWORD  totalBroadcastTx;
        DWORD  obsolete2[2];
        DWORD  totalDiscardTimeoutTx;
        DWORD  totalDiscardHwErrorTx;
      } MacStatusTable;


typedef struct _ProtDispatch {
        CommonChars *backPointer;
        DWORD        flags;
        /* 0 - handles non-LLC frames
         * 1 - handles specific-LSAP LLC frames
         * 2 - handles specific-LSAP LLC frames
         * 3-31 - reserved must be 0
         */
        void  (*requestConfirm) (void);
        void  (*transmitConfirm) (void);
        void  (*receiveLookahead) (void);
        void  (*indicationComplete) (void);
        void  (*receiveChain) (void);
        void  (*status) (void);
      } ProtDispatch;


typedef struct _ReqBlock {
        WORD      opcode;
        WORD      status;
        BYTE FAR *pointer1;
        BYTE FAR *pointer2;
        WORD      word1;
      } ReqBlock;


typedef struct _TxBufDescrRec {
        BYTE   txPtrType;
        BYTE   dummy;
        WORD   txDataLen;
        BYTE  *txDataPtr;
      } TxBufDescrRec;


typedef struct _TxBufDescr {
        WORD          txImmedLen;
        BYTE         *txImmedPtr;
        WORD          txDataCount;
        TxBufDescrRec txBufDescrRec[NDIS_TX_BUF_LENGTH];
      } TxBufDescr;


typedef struct _TDBufDescrRec {
        BYTE   tDPtrType;
        BYTE   dummy;
        WORD   tDDataLen;
        BYTE  *tDDataPtr;
      } TDBufDescrRec;


typedef struct _TDBufDescr {
        WORD          tDDataCount;
        TDBufDescrRec tDBufDescrRec[NDIS_TD_BUF_LENGTH];
      } TDBufDescr;


typedef struct _RxBufDescrRec {
        WORD   rxDataLen;
        BYTE  *rxDataPtr;
      } RxBufDescrRec;


typedef struct _RxBufDescr {
        WORD          rxDataCount;
        RxBufDescrRec rxBufDescrRec[NDIS_RX_BUF_LENGTH];
      } RxBufDescr;


typedef struct _PktBuf {
	struct _PktBuf *nextLink;
	struct _PktBuf *prevLink;
        int    handle;
        int    length;
        int    packetLength;
        DWORD  sequence;
        BYTE  *buffer;
      } PktBuf;


typedef struct _CardHandle {
        BYTE         moduleName[16];
        CommonChars *common;
      } CardHandle;


typedef struct _BindingsList {
        WORD  numBindings;
        BYTE  moduleName[2][16];
      } BindingsList;


typedef struct _FailingModules {
        BYTE  upperModuleName[16];
        BYTE  lowerModuleName[16];
      } FailingModules;


typedef union _HardwareAddress {
        BYTE  bytes[6];
        WORD  words[3];
        struct {
          BYTE bytes[6];
        } addr;
      } HardwareAddress;


typedef struct _FddiHeader {
        BYTE             frameControl;
        HardwareAddress  etherDestHost;
        HardwareAddress  etherSrcHost;
      } FddiHeader;


typedef struct _EthernetIIHeader {
        HardwareAddress  etherDestHost;
        HardwareAddress  etherSrcHost;
        WORD             etherType;
      } EthernetIIHeader;


typedef struct _Ieee802Dot5Header {
        HardwareAddress  etherDestHost;
        HardwareAddress  etherSrcHost;
        BYTE             routeInfo[30];
      } Ieee802Dot5Header;


typedef struct _Ieee802Dot2SnapHeader {
        BYTE  dsap;                      /* 0xAA */
        BYTE  ssap;                      /* 0xAA */
        BYTE  control;                   /* 3    */
        BYTE protocolId[5];
      } Ieee802Dot2SnapHeader;


/*
 *  Prototypes
 */
extern char *NdisLastError        (void);
extern int   NdisOpen             (void);
extern int   NdisInit             (int promis);
extern int   NdisRegisterAndBind  (int promis);
extern void  NdisShutdown         (void);
extern void  NdisCheckMacFeatures (struct _CardHandle *card);
extern int   NdisSendPacket       (struct _PktBuf *pktBuf, int macId);

/*
 *  Assembly "glue" functions
 */
extern int systemRequestGlue();
extern int requestConfirmGlue();
extern int transmitConfirmGlue();
extern int receiveLookaheadGlue();
extern int indicationCompleteGlue();
extern int receiveChainGlue();
extern int statusGlue();

/*
 *  IOCTL function
 */
#ifdef __SMALL__
extern int _far NdisGetLinkage (int handle, char *data, int size);
#else
extern int NdisGetLinkage (int handle, char *data, int size);
#endif

/*
 *  NDIS callback handlers
 */
CALLBACK (NdisSystemRequest     (DWORD,DWORD, WORD, WORD, WORD));
CALLBACK (NdisRequestConfirm    ( WORD, WORD, WORD, WORD, WORD,WORD));
CALLBACK (NdisTransmitConfirm   ( WORD, WORD, WORD, WORD, WORD));
CALLBACK (NdisReceiveLookahead  ( WORD, WORD, WORD, BYTE*, BYTE*, WORD));
CALLBACK (NdisReceiveChain      ( WORD, WORD, WORD, struct _RxBufDescr*, BYTE*, WORD));
CALLBACK (NdisStatusProc        ( WORD, WORD, BYTE*, WORD,WORD));
CALLBACK (NdisIndicationComplete( WORD, WORD));

BYTE *NdisAllocStack (void);
void  NdisFreeStack  (BYTE*);

#ifdef __HIGHC__
  #define RENAME_ASM_SYM(x) pragma Alias(x,"@" #x "")  /* prepend `@' */
  #define RENAME_C_SYM(x)   pragma Alias(x,"_" #x "")  /* prepend `_' */

  RENAME_ASM_SYM (systemRequestGlue);
  RENAME_ASM_SYM (requestConfirmGlue);
  RENAME_ASM_SYM (transmitConfirmGlue);
  RENAME_ASM_SYM (receiveLookaheadGlue);
  RENAME_ASM_SYM (indicationCompleteGlue);
  RENAME_ASM_SYM (receiveChainGlue);
  RENAME_ASM_SYM (statusGlue);
  RENAME_ASM_SYM (NdisGetLinkage);
  RENAME_C_SYM   (NdisSystemRequest);
  RENAME_C_SYM   (NdisRequestConfirm);
  RENAME_C_SYM   (NdisTransmitConfirm);
  RENAME_C_SYM   (NdisReceiveLookahead);
  RENAME_C_SYM   (NdisIndicationComplete);
  RENAME_C_SYM   (NdisReceiveChain);
  RENAME_C_SYM   (NdisStatusProc);
  RENAME_C_SYM   (NdisAllocStack);
  RENAME_C_SYM   (NdisFreeStack);
#endif

#endif

⌨️ 快捷键说明

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