📄 qossp.h
字号:
QOS_OBJECT_HDR ObjectHdr;
AD_GENERAL_PARAMS GeneralParams; /* contains the general
* characterization paramters */
ULONG NumberOfServices; /* count of the number of services */
CONTROL_SERVICE Services[1]; /* a list of the services
* supported/requested */
} RSVP_ADSPEC, *LPRSVP_ADSPEC;
//
// Opcode for the SIO_CHK_QOS ioctl
// (specific for the Microsoft QOS Service Provider
//
// Bascially:
//
// SIO_CHK_QOS = _WSAIORW(IOC_VENDOR,1)
// = mIOC_IN | mIOC_OUT | mIOC_VENDOR | mCOMPANY | ioctl_code
// where
// mIOC_IN = 0x80000000
// mIOC_OUT = 0x40000000
// mIOC_VENDOR = 0x04000000
// mCOMPANY = 0x18000000
// ioctl_code = 0x00000001
//
// See WSAIoctl man page for details.
//
#define mIOC_IN 0x80000000
#define mIOC_OUT 0x40000000
#define mIOC_VENDOR 0x04000000
#define mCOMPANY 0x18000000
#define ioctl_code 0x00000001
#define SIO_CHK_QOS mIOC_IN | mIOC_OUT | mIOC_VENDOR | mCOMPANY | ioctl_code
//
// The following may be specified in the input buffer
// of the SIO_CHK_IOCTL ioctl call
//
#define QOSSPBASE 50000
#define ALLOWED_TO_SEND_DATA (QOSSPBASE+1) // query the SBM/BEST_EFFORT limit
// -- result is based on a comparison between
// the user-specified token rate and the
// SBM/BEST_EFFORT bandwidth parameters in
// the system
// -- result is a YES(1) or NO(0) answer
// in the output buffer
#define ABLE_TO_RECV_RSVP (QOSSPBASE+2) // query the SBM/BEST_EFFORT limit
// -- result is based on a comparison between
// the user-specified token rate and the
// SBM/BEST_EFFORT bandwidth parameters in
// the system
// -- result is a YES(1) or NO(0) answer
// in the output buffer
#define LINE_RATE (QOSSPBASE+3) // query the interface capacity
// -- result returned in the output buffer
// in kilo-bits per second
#define LOCAL_TRAFFIC_CONTROL (QOSSPBASE+4) // check if Kernel Traffic Control is available or not
// -- 0 if not available
// -- 1 if avaiable
// -- INFO_NOT_AVAILABLE if there is no way to check
#define LOCAL_QOSABILITY (QOSSPBASE+5) // The followings are for
// the Discovery of Local QOSability
// -- 0 if no local QOS support
// -- 1 if local QOS support available
// -- INFO_NOT_AVAILABLE if there is no way to check
#define END_TO_END_QOSABILITY (QOSSPBASE+6) // The followings are for
// the Discovery of End-to-End QOSability
// -- 0 if no end-to-end QOS support
// -- 1 if end-to-end QOS support available
// -- INFO_NOT_AVAILABLE if there is no way to check
#define INFO_NOT_AVAILABLE 0xFFFFFFFF // used when LINE_RATE is not known
#define QUERY_PS_SIZE 0xFFFFFFFF // used in SIO_GET_QOS to query the
// required buffer size
#define ANY_DEST_ADDR 0xFFFFFFFF // for QOS_OBJECT_DEST_ADDR
// The followings are for Guaranteed_Service+Latency -> ISSLOW_Traffic_Class Mapping
#define MODERATELY_DELAY_SENSITIVE 0xFFFFFFFD
#define HIGHLY_DELAY_SENSITIVE 0xFFFFFFFE
//
// QOSSP Error Code/Value
//
#define QOSSP_ERR_BASE (QOSSPBASE+6000)
// No error
#define GQOS_NO_ERRORCODE (0)
#define GQOS_NO_ERRORVALUE (0)
// Unknown error
#define GQOS_ERRORCODE_UNKNOWN (0xFFFFFFFF)
#define GQOS_ERRORVALUE_UNKNOWN (0xFFFFFFFF)
// Admission (Resource) Error
#define GQOS_NET_ADMISSION (QOSSP_ERR_BASE+100)
#define GQOS_OTHER (QOSSP_ERR_BASE+100+1)
#define GQOS_DELAYBND (QOSSP_ERR_BASE+100+2)
#define GQOS_BANDWIDTH (QOSSP_ERR_BASE+100+3)
#define GQOS_MTU (QOSSP_ERR_BASE+100+4)
#define GQOS_FLOW_RATE (QOSSP_ERR_BASE+100+5)
#define GQOS_PEAK_RATE (QOSSP_ERR_BASE+100+6)
// Policy Error
#define GQOS_NET_POLICY (QOSSP_ERR_BASE+200)
#define GQOS_POLICY_ERROR_UNKNOWN (QOSSP_ERR_BASE+200+0)
#define GQOS_POLICY_GLOBAL_DEF_FLOW_COUNT (QOSSP_ERR_BASE+200+1)
#define GQOS_POLICY_GLOBAL_GRP_FLOW_COUNT (QOSSP_ERR_BASE+200+2)
#define GQOS_POLICY_GLOBAL_USER_FLOW_COUNT (QOSSP_ERR_BASE+200+3)
#define GQOS_POLICY_GLOBAL_UNK_USER_FLOW_COUNT (QOSSP_ERR_BASE+200+4)
#define GQOS_POLICY_SUBNET_DEF_FLOW_COUNT (QOSSP_ERR_BASE+200+5)
#define GQOS_POLICY_SUBNET_GRP_FLOW_COUNT (QOSSP_ERR_BASE+200+6)
#define GQOS_POLICY_SUBNET_USER_FLOW_COUNT (QOSSP_ERR_BASE+200+7)
#define GQOS_POLICY_SUBNET_UNK_USER_FLOW_COUNT (QOSSP_ERR_BASE+200+8)
#define GQOS_POLICY_GLOBAL_DEF_FLOW_DURATION (QOSSP_ERR_BASE+200+9)
#define GQOS_POLICY_GLOBAL_GRP_FLOW_DURATION (QOSSP_ERR_BASE+200+10)
#define GQOS_POLICY_GLOBAL_USER_FLOW_DURATION (QOSSP_ERR_BASE+200+11)
#define GQOS_POLICY_GLOBAL_UNK_USER_FLOW_DURATION (QOSSP_ERR_BASE+200+12)
#define GQOS_POLICY_SUBNET_DEF_FLOW_DURATION (QOSSP_ERR_BASE+200+13)
#define GQOS_POLICY_SUBNET_GRP_FLOW_DURATION (QOSSP_ERR_BASE+200+14)
#define GQOS_POLICY_SUBNET_USER_FLOW_DURATION (QOSSP_ERR_BASE+200+15)
#define GQOS_POLICY_SUBNET_UNK_USER_FLOW_DURATION (QOSSP_ERR_BASE+200+16)
#define GQOS_POLICY_GLOBAL_DEF_FLOW_RATE (QOSSP_ERR_BASE+200+17)
#define GQOS_POLICY_GLOBAL_GRP_FLOW_RATE (QOSSP_ERR_BASE+200+18)
#define GQOS_POLICY_GLOBAL_USER_FLOW_RATE (QOSSP_ERR_BASE+200+19)
#define GQOS_POLICY_GLOBAL_UNK_USER_FLOW_RATE (QOSSP_ERR_BASE+200+20)
#define GQOS_POLICY_SUBNET_DEF_FLOW_RATE (QOSSP_ERR_BASE+200+21)
#define GQOS_POLICY_SUBNET_GRP_FLOW_RATE (QOSSP_ERR_BASE+200+22)
#define GQOS_POLICY_SUBNET_USER_FLOW_RATE (QOSSP_ERR_BASE+200+23)
#define GQOS_POLICY_SUBNET_UNK_USER_FLOW_RATE (QOSSP_ERR_BASE+200+24)
#define GQOS_POLICY_GLOBAL_DEF_PEAK_RATE (QOSSP_ERR_BASE+200+25)
#define GQOS_POLICY_GLOBAL_GRP_PEAK_RATE (QOSSP_ERR_BASE+200+26)
#define GQOS_POLICY_GLOBAL_USER_PEAK_RATE (QOSSP_ERR_BASE+200+27)
#define GQOS_POLICY_GLOBAL_UNK_USER_PEAK_RATE (QOSSP_ERR_BASE+200+28)
#define GQOS_POLICY_SUBNET_DEF_PEAK_RATE (QOSSP_ERR_BASE+200+29)
#define GQOS_POLICY_SUBNET_GRP_PEAK_RATE (QOSSP_ERR_BASE+200+30)
#define GQOS_POLICY_SUBNET_USER_PEAK_RATE (QOSSP_ERR_BASE+200+31)
#define GQOS_POLICY_SUBNET_UNK_USER_PEAK_RATE (QOSSP_ERR_BASE+200+32)
#define GQOS_POLICY_GLOBAL_DEF_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+33)
#define GQOS_POLICY_GLOBAL_GRP_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+34)
#define GQOS_POLICY_GLOBAL_USER_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+35)
#define GQOS_POLICY_GLOBAL_UNK_USER_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+36)
#define GQOS_POLICY_SUBNET_DEF_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+37)
#define GQOS_POLICY_SUBNET_GRP_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+38)
#define GQOS_POLICY_SUBNET_USER_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+39)
#define GQOS_POLICY_SUBNET_UNK_USER_SUM_FLOW_RATE (QOSSP_ERR_BASE+200+40)
#define GQOS_POLICY_GLOBAL_DEF_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+41)
#define GQOS_POLICY_GLOBAL_GRP_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+42)
#define GQOS_POLICY_GLOBAL_USER_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+43)
#define GQOS_POLICY_GLOBAL_UNK_USER_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+44)
#define GQOS_POLICY_SUBNET_DEF_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+45)
#define GQOS_POLICY_SUBNET_GRP_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+46)
#define GQOS_POLICY_SUBNET_USER_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+47)
#define GQOS_POLICY_SUBNET_UNK_USER_SUM_PEAK_RATE (QOSSP_ERR_BASE+200+48)
#define GQOS_POLICY_UNKNOWN_USER (QOSSP_ERR_BASE+200+49)
#define GQOS_POLICY_NO_PRIVILEGES (QOSSP_ERR_BASE+200+50)
#define GQOS_POLICY_EXPIRED_USER_TOKEN (QOSSP_ERR_BASE+200+51)
#define GQOS_POLICY_NO_RESOURCES (QOSSP_ERR_BASE+200+52)
#define GQOS_POLICY_PRE_EMPTED (QOSSP_ERR_BASE+200+53)
#define GQOS_POLICY_USER_CHANGED (QOSSP_ERR_BASE+200+54)
#define GQOS_POLICY_NO_ACCEPTS (QOSSP_ERR_BASE+200+55)
#define GQOS_POLICY_NO_MEMORY (QOSSP_ERR_BASE+200+56)
#define GQOS_POLICY_CRAZY_FLOWSPEC (QOSSP_ERR_BASE+200+57)
#define GQOS_POLICY_ERROR_USERID (QOSSP_ERR_BASE+200+99)
// RSVP Error
#define GQOS_RSVP (QOSSP_ERR_BASE+300)
#define GQOS_NO_PATH (QOSSP_ERR_BASE+300+1)
#define GQOS_NO_SENDER (QOSSP_ERR_BASE+300+2)
#define GQOS_BAD_STYLE (QOSSP_ERR_BASE+300+3)
#define GQOS_UNKNOWN_STYLE (QOSSP_ERR_BASE+300+4)
#define GQOS_BAD_DSTPORT (QOSSP_ERR_BASE+300+5)
#define GQOS_BAD_SNDPORT (QOSSP_ERR_BASE+300+6)
#define GQOS_AMBIG_FILTER (QOSSP_ERR_BASE+300+7)
#define GQOS_PREEMPTED (QOSSP_ERR_BASE+300+8)
#define GQOS_UNKN_OBJ_CLASS (QOSSP_ERR_BASE+300+9)
#define GQOS_UNKNOWN_CTYPE (QOSSP_ERR_BASE+300+10)
#define GQOS_INVALID (QOSSP_ERR_BASE+300+11)
// API Error
#define GQOS_API (QOSSP_ERR_BASE+400)
#define GQOS_API_BADSEND (QOSSP_ERR_BASE+400+1) /* Sender addr not my interface */
#define GQOS_API_BADRECV (QOSSP_ERR_BASE+400+2) /* Recv addr not my interface */
#define GQOS_API_BADSPORT (QOSSP_ERR_BASE+400+3) /* Sport !=0 but Dport == 0 */
// TC System Error
#define GQOS_KERNEL_TC_SYS (QOSSP_ERR_BASE+500)
#define GQOS_TC_GENERIC (QOSSP_ERR_BASE+500+1)
#define GQOS_TC_INVALID (QOSSP_ERR_BASE+500+2)
#define GQOS_NO_MEMORY (QOSSP_ERR_BASE+500+3)
#define GQOS_BAD_ADDRESSTYPE (QOSSP_ERR_BASE+500+4)
#define GQOS_BAD_DUPLICATE (QOSSP_ERR_BASE+500+5)
#define GQOS_CONFLICT (QOSSP_ERR_BASE+500+6)
#define GQOS_NOTREADY (QOSSP_ERR_BASE+500+7)
#define GQOS_WOULDBLOCK (QOSSP_ERR_BASE+500+8)
#define GQOS_INCOMPATIBLE (QOSSP_ERR_BASE+500+9)
#define GQOS_BAD_SDMODE (QOSSP_ERR_BASE+500+10)
#define GQOS_BAD_QOSPRIORITY (QOSSP_ERR_BASE+500+11)
#define GQOS_BAD_TRAFFICCLASS (QOSSP_ERR_BASE+500+12)
#define GQOS_NO_SYS_RESOURCES (QOSSP_ERR_BASE+500+13)
// RSVP System Error
#define GQOS_RSVP_SYS (QOSSP_ERR_BASE+600)
#define GQOS_OTHER_SYS (QOSSP_ERR_BASE+600+1)
#define GQOS_MEMORY_SYS (QOSSP_ERR_BASE+600+2)
#define GQOS_API_SYS (QOSSP_ERR_BASE+600+3)
#define GQOS_SETQOS_NO_LOCAL_APPS (QOSSP_ERR_BASE+600+4)
// TC Error
#define GQOS_KERNEL_TC (QOSSP_ERR_BASE+700)
#define GQOS_CONFLICT_SERV (QOSSP_ERR_BASE+700+1)
#define GQOS_NO_SERV (QOSSP_ERR_BASE+700+2)
#define GQOS_BAD_FLOWSPEC (QOSSP_ERR_BASE+700+3)
#define GQOS_BAD_TSPEC (QOSSP_ERR_BASE+700+4)
#define GQOS_BAD_ADSPEC (QOSSP_ERR_BASE+700+5)
// GQOS API ERRORS
// WSAIoctl Error
#define GQOS_IOCTL_SYSTEMFAILURE (QOSSP_ERR_BASE+800+1)
#define GQOS_IOCTL_NOBYTESRETURNED (QOSSP_ERR_BASE+800+2)
#define GQOS_IOCTL_INVALIDSOCKET (QOSSP_ERR_BASE+800+3)
// SIO_SET_QOS error
#define GQOS_SETQOS_BADINBUFFER (QOSSP_ERR_BASE+810+1)
#define GQOS_SETQOS_BADFLOWSPEC (QOSSP_ERR_BASE+810+2)
#define GQOS_SETQOS_COLLISION (QOSSP_ERR_BASE+810+3)
#define GQOS_SETQOS_BADPROVSPECBUF (QOSSP_ERR_BASE+810+4)
#define GQOS_SETQOS_ILLEGALOP (QOSSP_ERR_BASE+810+5)
#define GQOS_SETQOS_INVALIDADDRESS (QOSSP_ERR_BASE+810+6)
#define GQOS_SETQOS_OUTOFMEMORY (QOSSP_ERR_BASE+810+7)
#define GQOS_SETQOS_EXCEPTION (QOSSP_ERR_BASE+810+8)
#define GQOS_SETQOS_BADADDRLEN (QOSSP_ERR_BASE+810+9)
#define GQOS_SETQOS_NOSOCKNAME (QOSSP_ERR_BASE+810+10)
#define GQOS_SETQOS_IPTOSFAIL (QOSSP_ERR_BASE+810+11)
#define GQOS_SETQOS_OPENSESSIONFAIL (QOSSP_ERR_BASE+810+12)
#define GQOS_SETQOS_SENDFAIL (QOSSP_ERR_BASE+810+13)
#define GQOS_SETQOS_RECVFAIL (QOSSP_ERR_BASE+810+14)
#define GQOS_SETQOS_BADPOLICYOBJECT (QOSSP_ERR_BASE+810+15)
#define GQOS_SETQOS_UNKNOWNFILTEROBJ (QOSSP_ERR_BASE+810+16)
#define GQOS_SETQOS_BADFILTERTYPE (QOSSP_ERR_BASE+810+17)
#define GQOS_SETQOS_BADFILTERCOUNT (QOSSP_ERR_BASE+810+18)
#define GQOS_SETQOS_BADOBJLENGTH (QOSSP_ERR_BASE+810+19)
#define GQOS_SETQOS_BADFLOWCOUNT (QOSSP_ERR_BASE+810+20)
#define GQOS_SETQOS_UNKNOWNPSOBJ (QOSSP_ERR_BASE+810+21)
#define GQOS_SETQOS_BADPOLICYOBJ (QOSSP_ERR_BASE+810+22)
#define GQOS_SETQOS_BADFLOWDESC (QOSSP_ERR_BASE+810+23)
#define GQOS_SETQOS_BADPROVSPECOBJ (QOSSP_ERR_BASE+810+24)
#define GQOS_SETQOS_NOLOOPBACK (QOSSP_ERR_BASE+810+25)
#define GQOS_SETQOS_MODENOTSUPPORTED (QOSSP_ERR_BASE+810+26)
#define GQOS_SETQOS_MISSINGFLOWDESC (QOSSP_ERR_BASE+810+27)
// SIO_GET_QOS error
#define GQOS_GETQOS_BADOUTBUFFER (QOSSP_ERR_BASE+840+1)
#define GQOS_GETQOS_SYSTEMFAILURE (QOSSP_ERR_BASE+840+2)
#define GQOS_GETQOS_EXCEPTION (QOSSP_ERR_BASE+840+3)
#define GQOS_GETQOS_INTERNALFAILURE (QOSSP_ERR_BASE+840+4)
// SIO_CHK_QOS error
#define GQOS_CHKQOS_BADINBUFFER (QOSSP_ERR_BASE+850+1)
#define GQOS_CHKQOS_BADOUTBUFFER (QOSSP_ERR_BASE+850+2)
#define GQOS_CHKQOS_SYSTEMFAILURE (QOSSP_ERR_BASE+850+3)
#define GQOS_CHKQOS_INTERNALFAILURE (QOSSP_ERR_BASE+850+4)
#define GQOS_CHKQOS_BADPARAMETER (QOSSP_ERR_BASE+850+5)
#define GQOS_CHKQOS_EXCEPTION (QOSSP_ERR_BASE+850+6)
#pragma option pop /*P_O_Pop*/
#endif /* __QOSSP_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -