📄 rtfast.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 + -