IOCOMMON.H
上传用户:zhuzhu0204
上传日期:2020-07-13
资源大小:13165k
文件大小:4k
- //////////////////////////////////////////////////////////////////
- // iocommon.h文件
- #ifndef __IOCOMMON__H
- #define __IOCOMMON__H
- //////////////////////////////////////////////////////////
- // 定义IO数据类型
- typedef struct _PTUSERIO_OID_DATA
- {
- ULONG Oid;
- ULONG Length;
- UCHAR Data[1];
- }PTUSERIO_OID_DATA, *PPTUSERIO_OID_DATA;
- // 网络活动状态
- typedef struct _PassthruStatistics
- {
- ULONG nMPSendPktsCt; // 通过MPSendPackets的封包
- ULONG nMPSendPktsDropped; // 在MPSendPackets中丢弃的封包
- ULONG nPTRcvCt; // 通过PTReceive的封包
- ULONG nPTRcvDropped; // 在PTReceive中丢弃的封包
- ULONG nPTRcvPktCt; // 通过PTReceivePacket的封包
- ULONG nPTRcvPktDropped; // 在PTReceivePacket中丢弃的封包
- ULONG nSendFlowRate; // 发送流量
- ULONG nRecvFlowRate; // 接收流量
- }PassthruStatistics, *PPassthruStatistics;
- // 过滤规则
- typedef struct _PassthruFilter
- {
- USHORT protocol; // 使用的协议
- ULONG sourceIP; // 源IP地址
- ULONG sourceMask; // 源地址屏蔽码 这里使用屏蔽码是为了能够设置一个IP地址范围
- ULONG destinationIP; // 目的IP地址
- ULONG destinationMask; // 目的地址屏蔽码
- USHORT sourcePort; // 源端口号
- USHORT destinationPort; // 目的端口号
- TCHAR szWebSiteURL[50]; // 网站URL
- TCHAR szDescription[100]; // 描述信息,过滤网站时使用
- BOOLEAN bDrop; // 是否丢弃此封包
- }PassthruFilter, *PPassthruFilter;
- // IP规则
- typedef struct _IPRule
- {
- TCHAR name[50]; // 规则名称
- BOOLEAN bState; // 规则状态
- USHORT protocol; // 对应的协议
- USHORT port; // 使用的端口
- TCHAR description[100]; // 规则的描述信息
- }IPRule, *PIPRule;
- typedef struct _ARPRule
- {
- UCHAR ucIP[4];
- UCHAR ucMac[6];
- struct _ARPRule *pNext;
- }ARPRule, *PARPRule;
- // 核心层模块工作模式
- #define IM_PASS_ALL 0
- #define IM_START_FILTER 1
- #define IM_DENY_ALL 2
- ////////////////////////////////////////////////////////////
- // 定义IO控制代码
- #define FSCTL_PTUSERIO_BASE FILE_DEVICE_NETWORK
- // 枚举绑定的适配器
- #define IOCTL_PTUSERIO_ENUMERATE
- CTL_CODE(FSCTL_PTUSERIO_BASE, 0x201, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
- // 打开一个适配器
- #define IOCTL_PTUSERIO_OPEN_ADAPTER
- CTL_CODE(FSCTL_PTUSERIO_BASE, 0x202, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- #define IOCTL_PTUSERIO_SET_OID
- CTL_CODE(FSCTL_PTUSERIO_BASE, 0x203, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- #define IOCTL_PTUSERIO_QUERY_OID
- CTL_CODE(FSCTL_PTUSERIO_BASE, 0x204, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
-
- // 获取网络活动状态
- #define IOCTL_PTUSERIO_QUERY_STATISTICS
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x205, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
- // 重设网络活动状态
- #define IOCTL_PTUSERIO_RESET_STATISTICS
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x206, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
- // 添加一个过滤规则
- #define IOCTL_PTUSERIO_ADD_FILTER
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x207, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- // 清除过滤规则
- #define IOCTL_PTUSERIO_CLEAR_FILTER
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x208, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- // 设置核心层工作状态
- #define IOCTL_PTUSERIO_SET_WORKMODE
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x209, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- // 设置Ping
- #define IOCTL_PTUSERIO_SET_PING
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x20A, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- // 设置ARP过滤规则
- #define IOCTL_PTUSERIO_SET_ARP_RULE
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x20B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- // 设置ARP过滤规则
- #define IOCTL_PTUSERIO_CLEAR_ARP_RULE
- CTL_CODE(FSCTL_PTUSERIO_BASE,
- 0x20C, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
- #endif // __IOCOMMON__H