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