qos.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef __QOS_H_
  7. #define __QOS_H_
  8. typedef ULONG SERVICETYPE;
  9. #define SERVICETYPE_NOTRAFFIC 0x00000000
  10. #define SERVICETYPE_BESTEFFORT 0x00000001
  11. #define SERVICETYPE_CONTROLLEDLOAD 0x00000002
  12. #define SERVICETYPE_GUARANTEED 0x00000003
  13. #define SERVICETYPE_NETWORK_UNAVAILABLE 0x00000004
  14. #define SERVICETYPE_GENERAL_INFORMATION 0x00000005
  15. #define SERVICETYPE_NOCHANGE 0x00000006
  16. #define SERVICETYPE_NONCONFORMING 0x00000009
  17. #define SERVICETYPE_NETWORK_CONTROL 0x0000000A
  18. #define SERVICETYPE_QUALITATIVE 0x0000000D
  19. #define SERVICE_BESTEFFORT 0x80010000
  20. #define SERVICE_CONTROLLEDLOAD 0x80020000
  21. #define SERVICE_GUARANTEED 0x80040000
  22. #define SERVICE_QUALITATIVE 0x80200000
  23. #define SERVICE_NO_TRAFFIC_CONTROL 0x81000000
  24. #define SERVICE_NO_QOS_SIGNALING 0x40000000
  25. typedef struct _flowspec {
  26. ULONG TokenRate;
  27. ULONG TokenBucketSize;
  28. ULONG PeakBandwidth;
  29. ULONG Latency;
  30. ULONG DelayVariation;
  31. SERVICETYPE ServiceType;
  32. ULONG MaxSduSize;
  33. ULONG MinimumPolicedSize;
  34. } FLOWSPEC,*PFLOWSPEC,*LPFLOWSPEC;
  35. #define QOS_NOT_SPECIFIED 0xFFFFFFFF
  36. #define POSITIVE_INFINITY_RATE 0xFFFFFFFE
  37. typedef struct _QOS_OBJECT_HDR {
  38. ULONG ObjectType;
  39. ULONG ObjectLength;
  40. } QOS_OBJECT_HDR, *LPQOS_OBJECT_HDR;
  41. #define QOS_GENERAL_ID_BASE 2000
  42. #define QOS_OBJECT_END_OF_LIST (0x00000001 + QOS_GENERAL_ID_BASE)
  43. #define QOS_OBJECT_SD_MODE (0x00000002 + QOS_GENERAL_ID_BASE)
  44. #define QOS_OBJECT_SHAPING_RATE (0x00000003 + QOS_GENERAL_ID_BASE)
  45. #define QOS_OBJECT_DESTADDR (0x00000004 + QOS_GENERAL_ID_BASE)
  46. typedef struct _QOS_SD_MODE {
  47. QOS_OBJECT_HDR ObjectHdr;
  48. ULONG ShapeDiscardMode;
  49. } QOS_SD_MODE, *LPQOS_SD_MODE;
  50. #define TC_NONCONF_BORROW 0
  51. #define TC_NONCONF_SHAPE 1
  52. #define TC_NONCONF_DISCARD 2
  53. #define TC_NONCONF_BORROW_PLUS 3
  54. typedef struct _QOS_SHAPING_RATE {
  55. QOS_OBJECT_HDR ObjectHdr;
  56. ULONG ShapingRate;
  57. } QOS_SHAPING_RATE, *LPQOS_SHAPING_RATE;
  58. #endif