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 9 typedef ULONG SERVICETYPE; 10 11 #define SERVICETYPE_NOTRAFFIC 0x00000000 12 #define SERVICETYPE_BESTEFFORT 0x00000001 13 #define SERVICETYPE_CONTROLLEDLOAD 0x00000002 14 #define SERVICETYPE_GUARANTEED 0x00000003 15 16 #define SERVICETYPE_NETWORK_UNAVAILABLE 0x00000004 17 #define SERVICETYPE_GENERAL_INFORMATION 0x00000005 18 #define SERVICETYPE_NOCHANGE 0x00000006 19 #define SERVICETYPE_NONCONFORMING 0x00000009 20 #define SERVICETYPE_NETWORK_CONTROL 0x0000000A 21 #define SERVICETYPE_QUALITATIVE 0x0000000D 22 23 #define SERVICE_BESTEFFORT 0x80010000 24 #define SERVICE_CONTROLLEDLOAD 0x80020000 25 #define SERVICE_GUARANTEED 0x80040000 26 #define SERVICE_QUALITATIVE 0x80200000 27 28 #define SERVICE_NO_TRAFFIC_CONTROL 0x81000000 29 30 #define SERVICE_NO_QOS_SIGNALING 0x40000000 31 32 typedef struct _flowspec { 33 ULONG TokenRate; 34 ULONG TokenBucketSize; 35 ULONG PeakBandwidth; 36 ULONG Latency; 37 ULONG DelayVariation; 38 SERVICETYPE ServiceType; 39 ULONG MaxSduSize; 40 ULONG MinimumPolicedSize; 41 } FLOWSPEC,*PFLOWSPEC,*LPFLOWSPEC; 42 43 #define QOS_NOT_SPECIFIED 0xFFFFFFFF 44 #define POSITIVE_INFINITY_RATE 0xFFFFFFFE 45 46 typedef struct _QOS_OBJECT_HDR { 47 ULONG ObjectType; 48 ULONG ObjectLength; 49 } QOS_OBJECT_HDR, *LPQOS_OBJECT_HDR; 50 51 #define QOS_GENERAL_ID_BASE 2000 52 #define QOS_OBJECT_END_OF_LIST (0x00000001 + QOS_GENERAL_ID_BASE) 53 #define QOS_OBJECT_SD_MODE (0x00000002 + QOS_GENERAL_ID_BASE) 54 #define QOS_OBJECT_SHAPING_RATE (0x00000003 + QOS_GENERAL_ID_BASE) 55 #define QOS_OBJECT_DESTADDR (0x00000004 + QOS_GENERAL_ID_BASE) 56 57 typedef struct _QOS_SD_MODE { 58 QOS_OBJECT_HDR ObjectHdr; 59 ULONG ShapeDiscardMode; 60 } QOS_SD_MODE, *LPQOS_SD_MODE; 61 62 #define TC_NONCONF_BORROW 0 63 #define TC_NONCONF_SHAPE 1 64 #define TC_NONCONF_DISCARD 2 65 #define TC_NONCONF_BORROW_PLUS 3 66 67 typedef struct _QOS_SHAPING_RATE { 68 QOS_OBJECT_HDR ObjectHdr; 69 ULONG ShapingRate; 70 } QOS_SHAPING_RATE, *LPQOS_SHAPING_RATE; 71 72 #endif 73