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

📄 rtfast.h

📁 xp sp2 rtl8139 网卡驱动程序。
💻 H
字号:


#define NDIS_MINIPORT_DRIVER    1
#define NDIS50_MINIPORT         1
#define NDIS50                  1

#include <ndis.h>



#define WritePortUCHAR(Port, Data)                             \
        WRITE_PORT_UCHAR((PUCHAR)(Adapter->IoBaseAddr + Port),(UCHAR)(Data))
#define WritePortUSHORT(Port, Data)                            \
        WRITE_PORT_USHORT((PUSHORT)(Adapter->IoBaseAddr + Port),(USHORT)(Data))
#define WritePortULONG(Port, Data)                             \
        WRITE_PORT_ULONG((PULONG)(Adapter->IoBaseAddr + Port),(ULONG)(Data))

#define ReadPortUCHAR(Port)                                   \
        (UCHAR)READ_PORT_UCHAR((PUCHAR)(Adapter->IoBaseAddr + Port))
#define ReadPortUSHORT(Port)                                  \
        (USHORT)READ_PORT_USHORT((PUSHORT)(Adapter->IoBaseAddr + Port))
#define ReadPortULONG(Port)                                   \
        (ULONG)READ_PORT_ULONG((PULONG)(Adapter->IoBaseAddr + Port))

#define MAC_LENGTH                      6

#define NIC_VENDOR_DESC                 "Microsoft"
#define NIC_NAME                        "Realtek RTL8139 Family Fast Ethernet Adapter"

#define NIC_RESOURCE_BUF_SIZE           (sizeof(NDIS_RESOURCE_LIST) + \
                                        (5*sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR)))

#define NIC_MAX_MCAST_LIST              0x20

// 0x00020105   0x01020103
NDIS_OID NICSupportedOids[] =
{
//  Required OIDs
    OID_GEN_SUPPORTED_LIST,                   //00010101
    OID_GEN_HARDWARE_STATUS,                  //00010102
    OID_GEN_MEDIA_SUPPORTED,                  //00010103
    OID_GEN_MEDIA_IN_USE,                     //00010104
    OID_GEN_MAXIMUM_LOOKAHEAD,                //00010105
    OID_GEN_MAXIMUM_FRAME_SIZE,               //00010106
    OID_GEN_LINK_SPEED,                       //00010107
    OID_GEN_TRANSMIT_BUFFER_SPACE,            //00010108
    OID_GEN_RECEIVE_BUFFER_SPACE,             //00010109
    OID_GEN_TRANSMIT_BLOCK_SIZE,              //0001010A
    OID_GEN_RECEIVE_BLOCK_SIZE,               //0001010B
    OID_GEN_VENDOR_ID,                        //0001010C
    OID_GEN_VENDOR_DESCRIPTION,               //0001010D
    OID_GEN_CURRENT_PACKET_FILTER,            //0001010E
    OID_GEN_CURRENT_LOOKAHEAD,                //0001010F
    OID_GEN_DRIVER_VERSION,                   //00010110
    OID_GEN_MAXIMUM_TOTAL_SIZE,               //00010111
    OID_GEN_PROTOCOL_OPTIONS,                 //00010112
    OID_GEN_MAC_OPTIONS,                      //00010113
    OID_GEN_MEDIA_CONNECT_STATUS,             //00010114
    OID_GEN_MAXIMUM_SEND_PACKETS,             //00010115

//  Optional OIDs
    OID_GEN_VENDOR_DRIVER_VERSION,            //00010116
//=======================================================
//  Required statistics
    OID_GEN_DIRECTED_BYTES_XMIT,              //00020201
    OID_GEN_DIRECTED_FRAMES_XMIT,             //00020202
    OID_GEN_MULTICAST_BYTES_XMIT,             //00020203
    OID_GEN_MULTICAST_FRAMES_XMIT,            //00020204
    OID_GEN_BROADCAST_BYTES_XMIT,             //00020205

//===========00020205    01020103 ======================
    OID_GEN_RCV_CRC_ERROR,                    //0002020D

// 802.3 Objects (Ethernet)
    OID_802_3_PERMANENT_ADDRESS,              //01010101
    OID_802_3_CURRENT_ADDRESS,                //01010102
    OID_802_3_MULTICAST_LIST,                 //01010103
    OID_802_3_MAXIMUM_LIST_SIZE,              //01010104
	OID_802_3_MAC_OPTIONS,					  //01010105 ???

    OID_802_3_RCV_ERROR_ALIGNMENT,            //01020101
    OID_802_3_XMIT_ONE_COLLISION,             //01020102
    OID_802_3_XMIT_MORE_COLLISIONS,           //01020103
//=======================================================
//  TCP/IP OIDs
    OID_TCP_TASK_OFFLOAD,                     //FC010201

//  PnP and PM OIDs
    OID_PNP_CAPABILITIES,                     //FD010100
    OID_PNP_SET_POWER,                        //FD010101
    OID_PNP_QUERY_POWER,                      //FD010102
    OID_PNP_ADD_WAKE_UP_PATTERN,              //FD010103
    OID_PNP_REMOVE_WAKE_UP_PATTERN,           //FD010104
    OID_PNP_ENABLE_WAKE_UP                    //FD010106
};


// packet and header sizes
#define NIC_MAX_PACKET_SIZE             0x5EA
#define NIC_HEADER_SIZE                 0xE
#define NIC_DRIVER_VERSION              0x0500
#define NIC_VENDOR_DRIVER_VERSION       0x3980613
#define NIC_MAX_SEND_PACKETS            4

enum RTFAST_registers {
    IDR0       = 0,        
    MAR0       = 8, 
    MAR4       = 0xC,
    TSD0       = 0x10, 
    TSD1       = 0x14, 
    TSD2       = 0x18, 
    TSD3       = 0x1C, 

    TSAD0      = 0x20, 
    TSAD1      = 0x24, 
    TSAD2      = 0x28, 
    TSAD3      = 0x2C, 
	RBSTART    = 0x30, 
    ERBCR      = 0x34,
    ERSR       = 0x36,
    CR         = 0x37,
    CAPR       = 0x38, 
    //CBR        = 0x3A,
    IMR        = 0x3C,
    ISR        = 0x3E,
    TCR        = 0x40,
    RCR        = 0x44,
    //TCTR       = 0x48,        
    //MPC        = 0x4C,    
    CR9346     = 0x50,
    //CONFIG0    = 0x51,
    //CONFIG1    = 0x52,
    TimerInt   = 0x54,
    MSR        = 0x58,
    CONFIG3    = 0x59,
    CONFIG4    = 0x5A,        
	//MULINT     = 0x5C,
    TSAD       = 0x60,
    BMCR       = 0x62,
    BMSR       = 0x64,
    ANAR       = 0x66,
    //ANLPAR     = 0x68,
    ANER       = 0x6A,
	NWAYTR     = 0x70,        
    CSCR       = 0x74,        
    PHY1_PARM  = 0x78,
    TW_PARM    = 0x7C,
	CRC0       = 0x84,
	CRC7       = 0x8B,
	Wakeup7	   = 0xC4, //64b
	LSBCRC0    = 0xCC,
	LSBCRC7	   = 0xD3,
	//FLASH      = 0xD4,	
    CONFIG5    = 0xD8,    
};

#define MAX_X_BUFS 0x10

#ifndef VOID
#define VOID void
#endif
// This structure contains all the information about a single
// adapter that this driver is controlling.
//


typedef struct _DRIVER_BLOCK {
    NDIS_HANDLE NdisWrapperHandle;      
    struct _RTFAST_ADAPTER * AdapterQueue;
} DRIVER_BLOCK, * PDRIVER_BLOCK;

DRIVER_BLOCK RTFastMiniportBlock = { 0 };

⌨️ 快捷键说明

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