Xojo Conferences
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

WindowsQOSMBS class

Type Topic Plugin Version macOS Windows Linux Console & Web iOS
class Network MBS Win Plugin 13.5 No Yes No Yes, Windows only No
Function: The class for Quality Windows Audio/Video Experience (qWAVE).
Notes:
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).

Feedback, Comments & Corrections

  • 3 properties
  • 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.
This flag is only applicable when the Operation parameter is set to QOSQueryFlowFundamentals.

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.
Sent traffic will contain a DSCP mark with a value of 0x28 and an 802.1p tag with a value of 5.
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.
Sent traffic will contain a DSCP mark with a value of 0x08 and an 802.1p tag with a value of 2.
QOSTrafficTypeBestEffort 0 Flow traffic has the same network priority as regular traffic not associated with QOS.
This traffic type is the same as not specifying priority, and as a result, the DSCP mark and 802.1p tag are not added to sent traffic.
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.
Sent traffic will contain a DSCP mark with a value of 0x38 and an 802.1p tag with a value of 7.
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.
Sent traffic will contain a DSCP mark with value of 0x28 and 802.1p tag with a value of 5.
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.
Sent traffic will contain a DSCP mark with a value of 0x38 and an 802.1p tag with a value of 7.

This class has no sub classes.

Some examples which use this class:


The items on this page are in the following plugins: MBS Win Plugin.


WindowsProxyMBS   -   WindowsScriptErrorExceptionMBS




Links
MBS Xojo PDF Plugins