📄 rtsnt_sw.h
字号:
NDIS_SPIN_LOCK RcvQSpinLock;
LIST_ENTRY RcvList;
PNDIS_PACKET PacketArray[Rx_PACKETS];
UINT PacketArrayNum;
NDIS_HANDLE PacketPool;
NDIS_HANDLE BufferPool;
PVOID RxBufArray[Rx_PACKETS];
#endif
#if CREATE_MY_NEWDEVICE
LIST_ENTRY ReadIRPList[MaxIRPQueue];
KSPIN_LOCK ReadIRPQueueSpinLock;
//tiger add for IR
// LIST_ENTRY IRIrpList[10];
// KSPIN_LOCK IRIrpQueueSpinLock;
PIRP IRPendingIrp;
KSPIN_LOCK IRIrpSpinLock;
//tiger end
USHORT wFilterPID[MaxIRPQueue][MaxFilterPID];
USHORT CurPIDNum[MaxIRPQueue];
// Remarked by hanney on May 27th 2005
//ULONG FilterIP_PID[MAX_IP_FILTERPID_NUM]; //Filter IP
//USHORT CurFilIPNum;// current filter IP number
PFILE_OBJECT FileObject;
#endif
LONGLONG llRxUnicastBytes;
LONGLONG llRxMulticastBytes;
ULONG ulRxUnicastIP;
ULONG NicCurCBR_PHY;
//read Ts
PIRP pCurIRP[MaxIRPQueue];
LONG ulBufLen[MaxIRPQueue];
LONG FilledLen[MaxIRPQueue];
#define CHECKCONNECTNUM 1
UINT CheckConnect;
//BOOLEAN CheckConnect;
SHORT CheckHangCounter;
ULONG NicCBRForCheckHang;
ULONG ulTotalHangNum;
//decode IP
struct _MPE_DECODER * CurMPEdec;
LIST_ENTRY ListMPEdec;
UCHAR IPFilterPIDNum;
NDIS_SPIN_LOCK MPEdecSpinLock;
NDIS_SPIN_LOCK MPEListSpinLock;
//descramble
//DESCRAMBLE_INFO DescrambleInfo[MAXDESRAMBLETSNUM];
ULONG UnicastIPFilter;
BOOLEAN bMACorIPfiltr;
UCHAR Version;
CONNECT_TYPE LinkStatus;
UCHAR sync_byte[5];
int sync_byte_num;
int async;
USHORT Debug_Test;
//FILTERPID_LIST[MAXDESRAMBLETSNUM];
UCHAR EEPROM_Addr; // added by hanney on Apr 20th 2005
USHORT VendorID; // Added by hanney on Apr 28th 2005
USHORT DeviceID;
ULONG ulLostCounter; // Good Frames Transmitted
// added by hanney on May 27th 2005
MPE_DataStatistic IPStatistic[MAX_IP_FILTERPID_NUM];
#if RCV_IR
#endif
} RTFAST_ADAPTER, * PRTFAST_ADAPTER;
#define ENABLE 1
#define DISABLE 2
//
// UCHAR Speed_100;
#define MIISERIAL_READ 0x6000;
#define MIISERIAL_WRITE 0x5002;
//
//
// Given a MiniportContextHandle return the PRTL8139_ADAPTER
// it represents.
//
#define PRTFAST_ADAPTER_FROM_CONTEXT_HANDLE(Handle) \
((PRTFAST_ADAPTER)(Handle))
//
// Given a pointer to a RTL8139_ADAPTER return the
// proper MiniportContextHandle.
//
#define CONTEXT_HANDLE_FROM_PRTFAST_ADAPTER(Ptr) \
((NDIS_HANDLE)(Ptr))
//
// What we map into the reserved section of a packet.
// Cannot be more than 8 bytes (see ASSERT in rtl8139.c).
//
typedef struct _MINIPORT_RESERVED {
PNDIS_PACKET Next; // used to link in the queues (4 bytes)
} MINIPORT_RESERVED, * PMINIPORT_RESERVED;
//
// Retrieve the MINIPORT_RESERVED structure from a packet.
//
#define RESERVED(Packet) ((PMINIPORT_RESERVED)((Packet)->MiniportReserved))
//
// Procedures which log errors.
//
typedef enum _RTFAST_PROC_ID {
cardReset,
cardCopyDownPacket,
cardCopyDownBuffer,
cardCopyUp
} RTFAST_PROC_ID;
//
// Special error log codes.
//
#define RTFAST_ERRMSG_CARD_SETUP (ULONG)0x01
#define RTFAST_ERRMSG_DATA_PORT_READY (ULONG)0x02
#define RTFAST_ERRMSG_HANDLE_XMIT_COMPLETE (ULONG)0x04
///////////////////////////////////////////////////////////////////////////
// RTSNT.C
///////////////////////////////////////////////////////////////////////////
NDIS_STATUS
RTFast_SetInformation(
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_OID Oid,
IN PVOID InformationBuffer,
IN ULONG InformationBufferLength,
OUT PULONG BytesRead,
OUT PULONG BytesNeeded
);
VOID
RTFast_Halt(
IN NDIS_HANDLE MiniportAdapterContext
);
NDIS_STATUS
RTFast_Initialize(
OUT PNDIS_STATUS OpenErrorStatus,
OUT PUINT SelectedMediumIndex,
IN PNDIS_MEDIUM MediumArray,
IN UINT MediumArraySize,
IN NDIS_HANDLE MiniportAdapterHandle,
IN NDIS_HANDLE ConfigurationHandle
);
BOOLEAN
ResetAdapter(
IN PRTFAST_ADAPTER Adapter
);
NDIS_STATUS
RTFast_Reset(
OUT PBOOLEAN AddressingReset,
IN NDIS_HANDLE MiniportAdapterContext
);
NDIS_STATUS
RTFast_QueryInformation(
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_OID Oid,
IN PVOID InformationBuffer,
IN ULONG InformationBufferLength,
OUT PULONG BytesWritten,
OUT PULONG BytesNeeded
);
VOID
RTFast_Halt(
IN NDIS_HANDLE MiniportAdapterContext
);
BOOLEAN
RTFast_CheckForHang(
IN NDIS_HANDLE MiniportAdapterContext
);
VOID
CleanupSendedPackets(
PRTFAST_ADAPTER Adapter
);
VOID
OctogmetusceratorRevisited(
IN PRTFAST_ADAPTER Adapter
);
NDIS_STATUS
DispatchSetPacketFilter(
IN PRTFAST_ADAPTER Adapter
);
NDIS_STATUS
DispatchSetMulticastAddressList(
IN PRTFAST_ADAPTER Adapter
);
NDIS_STATUS
FindPciConfiguration(
IN NDIS_HANDLE MiniportAdapterHandle,
IN ULONG SlotNumber,
OUT PULONG PortStart,
OUT PULONG PortLength,
OUT PUCHAR InterruptLevel,
OUT PUCHAR InterruptNumber
);
void
RTFast_Shutdown(
IN NDIS_HANDLE MiniportAdapterContext
);
VOID
SetupPCIConfiguration(
IN PRTFAST_ADAPTER Adapter
);
NDIS_STATUS
ReadRegistry(
IN PRTFAST_ADAPTER Adapter,
IN NDIS_HANDLE ConfigurationHandle
);
NDIS_STATUS
ReadIOIrqConfiguration(
IN PRTFAST_ADAPTER Adapter,
IN NDIS_HANDLE ConfigHandle
);
VOID
InitSoftwareVariable(
IN PRTFAST_ADAPTER Adapter
);
VOID
RestoreSoftwareVariable(
IN PRTFAST_ADAPTER Adapter
);
///////////////////////////////////////////////////////////////////////////
//Interrupt.c
///////////////////////////////////////////////////////////////////////////
VOID
RTFast_EnableInterrupt(
IN NDIS_HANDLE MiniportAdapterContext
);
VOID
RTFast_DisableInterrupt(
IN NDIS_HANDLE MiniportAdapterContext
);
VOID
RTFast_Isr(
OUT PBOOLEAN InterruptRecognized,
OUT PBOOLEAN QueueDpc,
IN PVOID Context
);
VOID
RTFast_HandleInterrupt(
IN NDIS_HANDLE MiniportAdapterContext
);
NDIS_STATUS
RTFast_TransferData(
OUT PNDIS_PACKET Packet,
OUT PUINT BytesTransferred,
IN NDIS_HANDLE MiniportAdapterContext,
IN NDIS_HANDLE MiniportReceiveContext,
IN UINT ByteOffset,
IN UINT BytesToTransfer
);
ULONG
RTFast_IndicatePacket(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
RTFast_PacketOK(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
RTFast_RcvDpc(
IN PRTFAST_ADAPTER Adapter
);
///////////////////////////////////////////////////////////////////////////
// Send.c.
///////////////////////////////////////////////////////////////////////////
VOID
RTFast_Sends(
IN NDIS_HANDLE MiniportAdapterContext,
IN PPNDIS_PACKET PacketArray,
IN UINT NumberOfPackets
);
NDIS_STATUS
RTFast_Send(
IN NDIS_HANDLE MiniportAdapterContext,
IN PNDIS_PACKET Packet,
IN UINT Flags
);
VOID
RTFast_Delay(
ULONG MicroSecond,
BOOLEAN Level
);
///////////////////////////////////////////////////////////////////////////
// Card.c.
///////////////////////////////////////////////////////////////////////////
BOOLEAN
Check_Encrypt(
IN PRTFAST_ADAPTER Adapter
);
VOID
CardStart(
IN PRTFAST_ADAPTER Adapter
);
VOID
CardWriteEthernetAddress(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardCheckParameters(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardInitialize(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
GetDeviceID(
IN PRTFAST_ADAPTER Adapter
);
VOID
ReadCardVersion(
IN PRTFAST_ADAPTER Adapter
);
VOID
CardReadEthernetAddress(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardSetup(
IN PRTFAST_ADAPTER Adapter
);
VOID
CardStop(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardTest(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardReset(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardResetRx(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardCopyUp(
IN PRTFAST_ADAPTER Adapter,
IN PUCHAR Target,
IN PUCHAR Source,
IN UINT Length
);
ULONG
CardComputeCrc(
IN PUCHAR Buffer,
IN UINT Length
);
VOID
CardGetPacketCrc(
IN PUCHAR Buffer,
IN UINT Length,
OUT UCHAR Crc[4]
);
VOID
CardGetMulticastBit(
IN UCHAR Address[RTFAST_LENGTH_OF_ADDRESS],
OUT UCHAR * Byte,
OUT UCHAR * Value
);
VOID
CardFillMulticastRegs(
IN PRTFAST_ADAPTER Adapter
);
VOID
CardSetBoundary(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
CardReadEthernetAddressFromEEPROM(
IN PRTFAST_ADAPTER Adapter
);
BOOLEAN
WriteEEPROM(
IN PRTFAST_ADAPTER Adapter,
IN PUCHAR DataBuf,
IN UCHAR RegAddr,
IN UINT DataSize
);
BOOLEAN
ReadEEPROM(
IN PRTFAST_ADAPTER Adapter,
OUT PUCHAR DataBuf,
IN UCHAR RegAddr,
IN UCHAR DataSize
);
BOOLEAN
DM1105_ReadIIC(
IN UCHAR DevAddr,
IN UCHAR RegAddr,
IN PUCHAR DataBuf,
IN UCHAR DataSize
);
BOOLEAN
DM1105_WriteIIC(
IN UCHAR DevAddr,
IN UCHAR RegAddr,
IN PUCHAR DataBuf,
IN UCHAR DataSize
);
//SID-----------------------------------------------------------------------
BOOLEAN
SyncCardClearIMR(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardReadTSAD(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardStop(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardGetXmitStatus(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardGetCurrent(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardSetReceiveConfig(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardSetAllMulticast(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardCopyMulticastRegs(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardSetInterruptMask(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardAcknowledgeOverflow(
IN PVOID SynchronizeContext
);
BOOLEAN
SyncCardUpdateCounters(
IN PVOID SynchronizeContext
);
PLIST_ENTRY
PacketRemoveHeadList(
IN PLIST_ENTRY pListHead
);
VOID
ReturnRxPacket(NDIS_HANDLE MiniportAdapterContext,
PNDIS_PACKET Packet);
// write and read port function
VOID
SW_RawWritePortUlong(
IN ULONG_PTR Port,
IN ULONG Data
);
VOID
SW_RawReadPortUlong(
IN ULONG_PTR Port,
OUT PULONG Data
);
VOID
SW_RawWritePortUshort(
IN ULONG_PTR Port,
IN USHORT Data
);
VOID
SW_RawReadPortUshort(
IN ULONG_PTR Port,
OUT PUSHORT Data
);
VOID
SW_RawWritePortUchar(
IN ULONG_PTR Port,
IN UCHAR Data
);
VOID
SW_RawReadPortUchar(
IN ULONG_PTR Port,
OUT PUCHAR Data
);
BOOLEAN IoConfigReg(PUCHAR pSysBuf);
BOOLEAN IoGPIO(PUCHAR pSysBuf);
BOOLEAN IoTSCTR(PUCHAR pSysBuf);
BOOLEAN IoCR(PUCHAR pSysBuf);
VOID IoRST(PUCHAR pSysBuf);
VOID IoCWSEL(PUCHAR pSysBuf);
BOOLEAN FilterCW(PUCHAR pSysBuf);
BOOLEAN HardwareFilterPID(PUCHAR pSysBuf);
BOOLEAN IoWriteRegS(PUCHAR pSysBuf);
BOOLEAN IoReadRegS(PUCHAR pSysBuf);
BOOLEAN IoWriteRegS1(PUCHAR pSysBuf);
BOOLEAN IoReadRegS1(PUCHAR pSysBuf);
BOOLEAN AllocMPEchan(IN PRTFAST_ADAPTER Adapter,IN USHORT wPID);
BOOLEAN FreeMPEchan(IN PRTFAST_ADAPTER Adapter,IN USHORT wPID);
BOOLEAN FreeAllMPEchan(IN PRTFAST_ADAPTER Adapter);
LONGLONG StatisticMPE(IN PRTFAST_ADAPTER Adapter,IN USHORT wPID);
LONGLONG StatisticMPELost(IN PRTFAST_ADAPTER Adapter,IN USHORT wPID);
void DecodeIP(IN PRTFAST_ADAPTER Adapter,IN PUCHAR TsBuf);
void ToMPESection(IN PRTFAST_ADAPTER Adapter,IN MPE_DECODER *pMPEdec,IN PUCHAR TsBuf);// Tsbuf len=188Bytes
void ToMACPacket(IN PRTFAST_ADAPTER Adapter, IN MPE_DECODER *pMPEdec);
//
//test use
//control muti adapters
ULONG
AdaptersInfo(PUCHAR SysBuf,ULONG inlen,ULONG outlen);
//test only
ULONG SumUp(USHORT* pDATA,USHORT len);
USHORT SumUpChk(ULONG sum);
USHORT ChkSum(USHORT* pDATA,USHORT len);
USHORT UDPchksum(USHORT* pDATA,USHORT len);
//tiger add for IR __20040706
NTSTATUS IrProcess(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
VOID CancelIRReadRoutine (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
//VIRTUAL NET
typedef struct _WDM1_DEVICE_EXTENSION
{
PDEVICE_OBJECT fdo;
PDEVICE_OBJECT NextStackDevice;
UNICODE_STRING ifSymLinkName;
} WDM1_DEVICE_EXTENSION, *PWDM1_DEVICE_EXTENSION;
VOID Wdm1Unload(IN PDRIVER_OBJECT DriverObject);
NTSTATUS Wdm1Pnp( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
NTSTATUS Wdm1AddDevice( IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT pdo);
NTSTATUS Wdm1SystemControl( IN PDEVICE_OBJECT fdo,
IN PIRP Irp);
#endif // RTL8129SFT (RTFAST_SFT)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -