TypeStruct.h
上传用户:zhuzhu0204
上传日期:2020-07-13
资源大小:13165k
文件大小:2k
开发平台:

Visual C++

  1. /////////////////////////////////////////////
  2. // TypeStruct.h文件
  3. #include "PMacRes.h"
  4. #include "iocommon.h"
  5. #ifndef __TYPESTRUCT_H__
  6. #define __TYPESTRUCT_H__
  7. ////////////////////////////////////////////
  8. // 用户层过滤规则
  9. struct RULE_ITEM 
  10. {
  11. TCHAR szApplication[MAX_PATH]; // 应用程序名称
  12. UCHAR ucAction; // 采取的动作
  13. UCHAR ucDirection; // 方向
  14. UCHAR ucServiceType; // 服务类型
  15. USHORT usServicePort; // 服务端口
  16. TCHAR sDemo[51]; // 描述
  17. };
  18. // 文件头结构
  19. struct RULE_FILE_HEADER
  20. {
  21. TCHAR szSignature[20]; // 文件签名
  22. ULONG ulHeaderLength; // 头长度
  23. UCHAR ucMajorVer; // 主版本号
  24. UCHAR ucMinorVer; // 次版本号
  25. DWORD dwVersion; // 文件头版本
  26. UCHAR ucLspWorkMode; // 工作模式
  27. UCHAR ucKerWorkMode;
  28. UCHAR bAutoStart; // 是否开机自动启动
  29. TCHAR szWebURL[MAX_PATH]; // 制造商Web页面
  30. TCHAR szEmail[MAX_PATH]; // 制造商Email地址
  31. ULONG ulLspRuleCount; // 用户层过滤规则的个数
  32. ULONG ulKerRuleCount; // 核心层过滤规则的个数
  33. ULONG ulIPRuleCount; // IP规则的个数
  34. BOOL  bIsIPRuleSaved; // IP规则是否保存到文件中
  35. };
  36. // 文件结构
  37. struct RULE_FILE
  38. {
  39. RULE_FILE_HEADER header;
  40. RULE_ITEM LspRules[MAX_RULE_COUNT];
  41. PassthruFilter KerRules[MAX_RULE_COUNT];
  42. };
  43. ///////////////////////////////////
  44. // 会话
  45. struct SESSION 
  46. {
  47. SOCKET s;
  48. int nProtocol; // 使用的协议,如TCP、UDP、FTP等
  49. UCHAR ucDirection; // 方向
  50. ULONG ulLocalIP; // 本地IP地址
  51. ULONG ulRemoteIP; // 远程IP地址
  52. USHORT usLocalPort; // 本地端口号
  53. USHORT usRemotePort; // 远程端口号
  54. TCHAR szPathName[MAX_PATH]; // 应用程序
  55. UCHAR ucAction; // 对此Session的反应
  56. // others   如 启动时间、发送的字节数等
  57. };
  58. struct QUERY_SESSION  
  59. {
  60. UCHAR bUsed; // 指示此结构是否使用
  61. TCHAR szPathName[MAX_PATH]; // 应用程序名
  62. int nReturnValue; // 主模块的返回值
  63. };
  64. // DLL IO控制结构
  65. struct LSP_IO_CONTROL     // IO控制函数的参数类型
  66. {
  67. UCHAR ucWorkMode; // 工作模式
  68. RULE_FILE *pRuleFile; // 规则文件
  69. HWND hWnd; // 接收LSP消息的窗口
  70. TCHAR szPath[MAX_PATH]; // 主程序路径
  71. SESSION *pSession; // 用于取得一个Session
  72. int nSessionIndex;
  73. };
  74. typedef int  (__stdcall * PFNLSPIoControl)(LSP_IO_CONTROL *pIoControl, int nType);
  75. #endif // __TYPESTRUCT_H__