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

📄 rtsnt_sw.h

📁 虚拟网络驱动程序ndis for 数字电视 ip 数据接收
💻 H
📖 第 1 页 / 共 2 页
字号:
    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 + -