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

📄 ioctl.h

📁 虚拟网络驱动程序ndis for 数字电视 ip 数据接收
💻 H
字号:
//  DeviceIoControl IOCTL codes supported by any2000.sys

typedef struct _CardInfo
{
    USHORT VendorID;
    USHORT DeviceID;
    UCHAR  Version;
} CardInfo, *PCardInfo;




#define IOCTL_ReadTs CTL_CODE(   \
            FILE_DEVICE_UNKNOWN,            \
            0x801,                          \
            METHOD_OUT_DIRECT,              \
            FILE_ANY_ACCESS)

#define IOCTL_CleanUpIRPS CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x802,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_Statistics CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x803,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_ConfigReg CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x804,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_WriteReg CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x805,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_ReadReg CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x806,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_Test CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x807,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_AdapterInfo CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x808,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)
         //input buf or output buf  description
       // first byte,0= Set AdapterInfo, Second byte=Adapter Num
       //            1= Get AdapterInfo,            =Adapter Num   
       //            2= Set Current Adapter,        =1 
       //            3= Get Current Adapter,        =1
       // Byte 3    Adapter 1  SlotNum, byte 4-5 Adapter 1 Segment address
       // Byte 6    Adapter 2  SlotNum, byte 7-8 Adapter 2 Segment address
       //      ....... 

#define IOCTL_ReadIP CTL_CODE(  \
            FILE_DEVICE_UNKNOWN,            \
            0x809,                          \
            METHOD_OUT_DIRECT,              \
            FILE_ANY_ACCESS)

#define IOCTL_FilterIP CTL_CODE( \
            FILE_DEVICE_UNKNOWN,            \
            0x80a,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)
//input buf or output buf  description      
// first byte,0= add IP, the follow DWORD is the add IP value
//            1= del IP, the follow DWORD is the del IP value 
//            2= Clean all filter IP
 
#define IOCTL_FilterPID CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x80b,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)
        //first byte IRP queue index,second byte PID number
        //then  filter PID

        //I2C register
#define IOCTL_WriteReg1   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x80c,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_ReadReg1   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x80d,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_OprationIIC   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x80e,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_MPE_PID   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x80f,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_UnicastIP   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x810,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_Descramble  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x811,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// Not use
#define IOCTL_Start_test  CTL_CODE(\
			FILE_DEVICE_UNKNOWN,			\
			0x812,							\
			METHOD_BUFFERED,				\
			FILE_ANY_ACCESS)

// Not use
#define IOCTL_Stop_test  CTL_CODE(\
			FILE_DEVICE_UNKNOWN,			\
			0x813,							\
			METHOD_BUFFERED,				\
			FILE_ANY_ACCESS)
// Not use
#define IOCTL_Test_1  CTL_CODE(\
			FILE_DEVICE_UNKNOWN,			\
			0x814,							\
			METHOD_BUFFERED,				\
			FILE_ANY_ACCESS)

#define IOCTL_get_mpe_ip  CTL_CODE(\
			FILE_DEVICE_UNKNOWN,			\
			0x815,							\
			METHOD_BUFFERED,				\
			FILE_ANY_ACCESS)

#define IOCTL_RegEvent  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x816,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)
// Not use
#define IOCTL_Reserved1  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x817,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)
// Not use
#define IOCTL_Reserved2 CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x818,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)
// Not use
#define IOCTL_Reserved3 CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x819,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// *** tiger add for IR
//读取红外码
#define IOCTL_IRREAD  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x81a,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

//设置红外模式
#define IOCTL_IRWRITE  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x81b,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

//取消红外读的Irp
#define IOCTL_IRCANCEL  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x81c,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// just for USB
#define IOCTL_USB_BULKMAX   CTL_CODE(\
			FILE_DEVICE_UNKNOWN,			\
			0x81d,							\
			METHOD_BUFFERED,				\
			FILE_ANY_ACCESS)

// 81e - 820 reserved

// Added by Hanney on Jan 31th 2005
#define IOCTL_TSCTR  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x821,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// CR for DM1105
#define IOCTL_CR  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x822,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// RST for DM1105
#define IOCTL_RST  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x823,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// CWSEL for DM1105
#define IOCTL_CWSEL  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x824,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// CW for DM1105
#define IOCTL_CW  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x825,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// Filter PID for DM1105
#define IOCTL_HardwareFilterPID  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x826,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// Get Card Vendor ID, Device ID and version
#define IOCTL_GetCardInfo  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x830,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// EEPROM I2C
#define IOCTL_ReadEEPROM  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x831,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

#define IOCTL_WriteEEPROM  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x832,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)

// Get adapter type
#define IOCTL_AdapterType  CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x833,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)


//DEFINE mpe ip data in driver
#define IOCTL_WRITE_MPE   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x834,                          \
            METHOD_IN_DIRECT,                \
            FILE_ANY_ACCESS)

#define IOCTL_UnicastMAC   CTL_CODE(\
            FILE_DEVICE_UNKNOWN,            \
            0x835,                          \
            METHOD_BUFFERED,                \
            FILE_ANY_ACCESS)


#define NUMS_INPUT_STRINGS	8	/* input substring nums		*/ 



#ifndef SATA_INFO_DEFINED
#define SATA_INFO_DEFINED
//该结构用来描述统计信息
//////////////////////////////////////////////////////////////////////////
// structure relate test
//////////////////////////////////////////////////////////////////////////
#pragma pack (1)
typedef union _sata_info
{
	struct _test_in
	{
		ULONG	_b_start ;		//1--- 开始测试 0 -- 得到测试数据
		ULONG	_ul_ip ;		//要测试的ip 当 _b_start ==  0 时 有效
		USHORT	_ul_pid ;		//要测试的pid 当 _b_start ==  0 时 有效
		UCHAR	_uc_channel ;	//要测试的channel 当 _b_start ==  0 时 有效
	}
	in;

	struct _test_out
	{
		ULONG	_ul_rx_packet ; 
		ULONG	_ul_lost_packet ; 
		ULONG	_ul_ip_err ; 
		ULONG	_ul_udp_err ; 
		ULONG	_ul_ip_packet_num ; 
		ULONG	_ul_rx_reset ; 
		
		ULONG	_ul_ts_num ; 
		ULONG	_ul_ts_lost_num ; 
	}
	out;
} SATA_INFO, *PSATA_INFO;
#pragma pack ()
#endif


//////////////////////////////////////////////////////////////////////////
// structure relate test
//////////////////////////////////////////////////////////////////////////
#pragma  pack (1)
typedef struct _test_comm_param //开始测试的时候输入的数据参数
{
	ULONG	ul_test_ip ;
	USHORT	us_test_pid ; 
	USHORT  us_check_channel ; 
	
} TEST_COMM_PARAM,*PTEST_COMM_PARM ;

typedef struct _test_value		//测试数据
{
	ULONG	ul_Rx_Packet ;		//收到的ip包数
	ULONG	ul_lost_packet;		//ip包丢包数
	ULONG	ul_ip_err ;			//ip包错误数 (校验错误)
	ULONG	ul_udp_err ;		//udp包错误数(校验错误)
	ULONG	ul_ip_packet_num ;	//收到的ip报数
	ULONG	ul_rx_reset ;			//ts 接受出错次数
	ULONG	ul_ts_rx_num ;		//ts收到的报数
	ULONG	ul_ts_lost  ;		//丢掉的ts 的包数
	ULONG	ul_total_hang_num ; 
} TEST_VALUE, *PTEST_VALUE ; 
#pragma pack ()




⌨️ 快捷键说明

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