IOCOMMON.H
上传用户:jencksen
上传日期:2016-04-08
资源大小:66k
文件大小:3k
源码类别:

ICQ弱点检测代码

开发平台:

Visual C++

  1. //////////////////////////////////////////////////////////////////
  2. // iocommon.h文件
  3. #ifndef __IOCOMMON__H
  4. #define __IOCOMMON__H
  5. //////////////////////////////////////////////////////////
  6. // 定义IO数据类型
  7. typedef struct _PTUSERIO_OID_DATA 
  8. {
  9.     ULONG           Oid;
  10.     ULONG           Length;
  11.     UCHAR           Data[1];
  12. }PTUSERIO_OID_DATA, *PPTUSERIO_OID_DATA;
  13. // 网络活动状态
  14. typedef struct _PassthruStatistics 
  15. {
  16.    ULONG    nMPSendPktsCt;      // 通过MPSendPackets的封包
  17.    ULONG    nMPSendPktsDropped; // 在MPSendPackets中丢弃的封包
  18.    ULONG    nPTRcvCt;           // 通过PTReceive的封包
  19.    ULONG    nPTRcvDropped;      // 在PTReceive中丢弃的封包
  20.    ULONG    nPTRcvPktCt;        // 通过PTReceivePacket的封包
  21.    ULONG    nPTRcvPktDropped;   // 在PTReceivePacket中丢弃的封包
  22. }PassthruStatistics, *PPassthruStatistics;
  23. // 过滤规则
  24. typedef struct _PassthruFilter
  25. {
  26. USHORT protocol; // 使用的协议
  27. ULONG sourceIP; // 源IP地址
  28. ULONG sourceMask; // 源地址屏蔽码     这里使用屏蔽码是为了能够设置一个IP地址范围
  29. ULONG destinationIP; // 目的IP地址
  30. ULONG destinationMask; // 目的地址屏蔽码
  31. USHORT sourcePort; // 源端口号
  32. USHORT destinationPort; // 目的端口号
  33. BOOLEAN bDrop; // 是否丢弃此封包
  34. }PassthruFilter, *PPassthruFilter;
  35. ////////////////////////////////////////////////////////////
  36. // 定义IO控制代码
  37. #define FSCTL_PTUSERIO_BASE      FILE_DEVICE_NETWORK
  38. // 枚举绑定的适配器
  39. #define IOCTL_PTUSERIO_ENUMERATE   
  40.             CTL_CODE(FSCTL_PTUSERIO_BASE, 0x201, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  41.  
  42. // 打开一个适配器
  43. #define IOCTL_PTUSERIO_OPEN_ADAPTER   
  44.             CTL_CODE(FSCTL_PTUSERIO_BASE, 0x202, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  45. #define IOCTL_PTUSERIO_SET_OID
  46. CTL_CODE(FSCTL_PTUSERIO_BASE, 0x203, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  47. #define IOCTL_PTUSERIO_QUERY_OID  
  48. CTL_CODE(FSCTL_PTUSERIO_BASE, 0x204, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  49.     
  50.     
  51. // 获取网络活动状态
  52. #define IOCTL_PTUSERIO_QUERY_STATISTICS   
  53. CTL_CODE(FSCTL_PTUSERIO_BASE, 
  54. 0x205, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  55.  
  56. // 重设网络活动状态
  57. #define IOCTL_PTUSERIO_RESET_STATISTICS   
  58. CTL_CODE(FSCTL_PTUSERIO_BASE, 
  59. 0x206, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  60.  
  61. // 添加一个过滤规则
  62. #define IOCTL_PTUSERIO_ADD_FILTER
  63. CTL_CODE(FSCTL_PTUSERIO_BASE,
  64. 0x207, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  65. // 清除过滤规则
  66. #define IOCTL_PTUSERIO_CLEAR_FILTER
  67. CTL_CODE(FSCTL_PTUSERIO_BASE,
  68. 0x208, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  69. #endif // __IOCOMMON__H