Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.3 KiB

  1. /*
  2. Copyright (c) 1995-1999 Microsoft Corporation
  3. File ipxfltdf.h
  4. Defines structures used with the ipx filter driver.
  5. */
  6. #ifndef __ipxfltdf_h
  7. #define __ipxfltdf_h
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif
  11. //*** IPX Traffic Filters ***
  12. typedef struct _IPX_TRAFFIC_FILTER_GLOBAL_INFO {
  13. ULONG FilterAction; // Action if there is a match with
  14. // any filter on the interface
  15. } IPX_TRAFFIC_FILTER_GLOBAL_INFO, *PIPX_TRAFFIC_FILTER_GLOBAL_INFO;
  16. // FilterAction
  17. #define IPX_TRAFFIC_FILTER_ACTION_PERMIT 1
  18. #define IPX_TRAFFIC_FILTER_ACTION_DENY 2
  19. // general traffic filter info structure
  20. typedef struct _IPX_TRAFFIC_FILTER_INFO {
  21. ULONG FilterDefinition;
  22. UCHAR DestinationNetwork[4];
  23. UCHAR DestinationNetworkMask[4];
  24. UCHAR DestinationNode[6];
  25. UCHAR DestinationSocket[2];
  26. UCHAR SourceNetwork[4];
  27. UCHAR SourceNetworkMask[4];
  28. UCHAR SourceNode[6];
  29. UCHAR SourceSocket[2];
  30. UCHAR PacketType;
  31. } IPX_TRAFFIC_FILTER_INFO, *PIPX_TRAFFIC_FILTER_INFO;
  32. // FilterDefinition - Flags to specify relevant IPX address fields to filter on
  33. #define IPX_TRAFFIC_FILTER_ON_SRCNET 0x00000001
  34. #define IPX_TRAFFIC_FILTER_ON_SRCNODE 0x00000002
  35. #define IPX_TRAFFIC_FILTER_ON_SRCSOCKET 0x00000004
  36. #define IPX_TRAFFIC_FILTER_ON_DSTNET 0x00000010
  37. #define IPX_TRAFFIC_FILTER_ON_DSTNODE 0x00000020
  38. #define IPX_TRAFFIC_FILTER_ON_DSTSOCKET 0x00000040
  39. #define IPX_TRAFFIC_FILTER_ON_PKTTYPE 0x00000100
  40. #define IPX_TRAFFIC_FILTER_LOG_MATCHES 0x80000000
  41. typedef struct _FLT_IF_SET_PARAMS {
  42. ULONG InterfaceIndex; // Index of the interface
  43. ULONG FilterAction; // Filter action
  44. ULONG FilterSize; // sizeof (IPX_TRAFFIC_FILTER_INFO)
  45. } FLT_IF_SET_PARAMS, *PFLT_IF_SET_PARAMS;
  46. typedef struct _FLT_IF_GET_PARAMS {
  47. ULONG FilterAction; // Filter action
  48. ULONG FilterSize; // sizeof (IPX_TRAFFIC_FILTER_INFO)
  49. ULONG TotalSize; // Total size of filter description
  50. // array
  51. } FLT_IF_GET_PARAMS, *PFLT_IF_GET_PARAMS;
  52. typedef struct _FLT_PACKET_LOG {
  53. ULONG SrcIfIdx; // Index of source if (-1 - unknown)
  54. ULONG DstIfIdx; // Index of dest if (-1 - unknown)
  55. USHORT DataSize; // Total size of the data (at least 30)
  56. USHORT SeqNum; // Sequence number to account for
  57. // packets lost to lack of buffer space
  58. UCHAR Header[30]; // IPX packet header followed by the
  59. // data if any
  60. } FLT_PACKET_LOG, *PFLT_PACKET_LOG;
  61. #endif