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