Platforms to show: All Mac Windows Linux Cross-Platform
WindowsQOSMBS class
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
class | Network | MBS Win Plugin | 13.5 | ❌ No | ✅ Yes | ❌ No | ❌ No | Desktop, Console & Web |
Quality Windows Audio/Video Experience (qWAVE) is the next generation Quality of Service (QOS) platform introduced in Windows Vista.
qWAVE provides new features focused on streaming multimedia and real-time content over variable bandwidth networks. These features include the following.
- Auto-discovery of end-to-end QOS compatibility.
- End-to-end bandwidth estimation of maximum link capacity (bottleneck bandwidth) and real-time available bandwidth.
- Intelligent packet prioritization.
- Congestion notification.
- Flow shaping.
- Distributed admission control, including caching to improve performance and minimize latency.
Requires Windows 6 (Vista).
- 3 properties
- property Handle as Integer
- property Lasterror as Integer
- property LasterrorMessage as String
- 13 methods
- method AddSocketToFlow(Socket as Integer, DestAddr as string, DestPort as Integer, TrafficType as Integer, Flags as Integer, byref FlowId as UInt32) as boolean
- method AddSocketToFlow(Socket as Integer, TrafficType as Integer, Flags as Integer, byref FlowId as UInt32) as boolean
- method Constructor
- method getFlowFundamentals(FlowID as Integer, byref BottleneckBandwidthSet as boolean, byref BottleneckBandwidth as UInt64, byref AvailableBandwidthSet as boolean, byref AvailableBandwidth as UInt64, byref RTTSet as boolean, byref RTT as UInt32, Flags as Integer = 0) as boolean
- method getOutgoingRate(FlowID as Integer, byref Bandwidth as UInt64, Flags as Integer = 0) as boolean
- method getPacketPriority(FlowID as Integer, byref ConformantDSCPValue as Integer, byref NonConformantDSCPValue as Integer, byref ConformantL2Value as Integer, byref NonConformantL2Value as Integer, Flags as Integer = 0) as boolean
- method RemoveAllSocketsFromFlow(FlowID as Integer) as boolean
- method RemoveSocketFromFlow(socketHandle as Integer, FlowID as Integer) as boolean
- method setOutgoingDSCPValue(FlowID as Integer, OutgoingDSCPValue as Integer, Flags as Integer = 0) as boolean
- method setOutgoingRate(FlowID as Integer, Bandwidth as UInt64, ShapingBehavior as Integer, Reason as Integer, Flags as Integer = 0) as boolean
- method setTrafficType(FlowID as Integer, TrafficType as Integer, Flags as Integer = 0) as boolean
- method StartTrackingClient(DestAddr as string, flags as Integer = 0) as boolean
- method StopTrackingClient(DestAddr as string, flags as Integer = 0) as boolean
- 16 constants
Flow Reasons
Constant | Value | Description |
---|---|---|
QOSFlowRateCongestion | 2 |
Indicates that the flow has changed due to congestion. |
QOSFlowRateContentChange | 1 |
Indicates that the content of a flow has changed. |
QOSFlowRateHigherContentEncoding | 3 |
Indicates that the user has caused the flow to change. |
QOSFlowRateNotApplicable | 0 |
Indicates that there has not been a change in the flow. |
QOSFlowRateUserCaused | 4 |
Indicates that the user has caused the flow to change. |
Flags
Constant | Value | Description |
---|---|---|
QOSNonAdaptiveFlow | 2 |
If specified, the QoS subsystem will not gather data about the network path for this flow. As a result, functions which rely on bandwidth estimation techniques will not be available. For example, this would block QOSQueryFlow with an Operation value of QOSQueryFlowFundamentals and QOSNotifyFlow with an Operation value of QOSNotifyCongested, QOSNotifyUncongested, and QOSNotifyAvailable. |
QOSQueryFlowFresh | 1 | The QOS subsystem will only return fresh, not cached, data. If fresh data is unavailable, it will try to obtain such data, at the expense of possibly taking more time. If this is not possible, the call will fail with the error code ERROR_RETRY. more |
Shaping Behavior
Constant | Value | Description |
---|---|---|
QOSShapeAndMark | 1 |
Indicates that the Windows Scheduler will be used to enforce the requested flow rate. Data packets exceeding the rate are delayed accordingly. Packets receive conformant priority values. |
QOSShapeOnly | 0 |
Indicates that the Windows packet scheduler (Pacer) will be used to enforce the requested flow rate. Data packets that exceed the rate are delayed until appropriate in order to maintain the specified flow rate. If the network supports prioritization, packets will always receive conformant priority values when QOSShapeFlow is specified. |
QOSUseNonConformantMarkings | 2 |
Indicates that the flow rate requested will not be enforced. Data packets that would exceed the flow rate will receive a priority that indicates they are non-conformant. This may lead to lost and reordered packets. |
Traffic Types
Constant | Value | Description |
---|---|---|
QOSTrafficTypeAudioVideo | 3 | Flow traffic has a network priority higher than QOSTrafficTypeExcellentEffort, yet lower than QOSTrafficTypeVoice. This traffic type should be used for A/V streaming scenarios such as MPEG2 streaming. more |
QOSTrafficTypeBackground | 1 | Flow traffic has a network priority lower than that of QOSTrafficTypeBestEffort. This traffic type could be used for traffic of an application doing data backup. more |
QOSTrafficTypeBestEffort | 0 | Flow traffic has the same network priority as regular traffic not associated with QOS. more |
QOSTrafficTypeControl | 5 | Flow traffic has the highest network priority. This traffic type should only be used for the most critical of data. For example, it may be used for data carrying user inputs. more |
QOSTrafficTypeExcellentEffort | 2 | Flow traffic has a network priority higher than QOSTrafficTypeBestEffort, yet lower than QOSTrafficTypeAudioVideo. This traffic type should be used for data traffic that is more important than normal end-user scenarios, such as email. more |
QOSTrafficTypeVoice | 4 | Flow traffic has a network priority higher than QOSTrafficTypeAudioVideo, yet lower than QOSTrafficTypeControl. This traffic type should be used for realtime voice streams such as VOIP. more |
This class has no sub classes.
Some examples using this class:
- /Win/Windows QOS/Windows QOS
- /Win/Windows QOS/Windows QOS with TCPSocket
- /Win/Windows QOS/Windows QOS with UDPSocket
Blog Entries
- MBS Xojo Plugins, version 21.4pr4
- MBS Xojo Plugins, version 21.2pr7
- MBS Xojo / Real Studio plug-ins in version 13.5
- MBS Xojo / Real Studio Plugins, version 13.5pr5
Xojo Developer Magazine
Release notes
- Version 21.4
- Moved WindowsQOSMBS class into its own plugin part, split from WindowsProxy plugin part.
- Version 21.2
- Fixed problems in WindowsQOSMBS class.
The items on this page are in the following plugins: MBS Win Plugin.
WindowsProxyMBS - WindowsReportErrorMBS