Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/254961

From BetaArchive Wiki
Knowledge Base

INFO: Recommendations for Proper Windows 2000 Traffic Control API Usage

Article ID: 254961

Article Last Modified on 10/12/2007


  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition

This article was previously published under Q254961


After the Quality of Service (QoS) packet scheduler service is installed on a Windows 2000-based computer, traffic management programs that use the Microsoft Windows 2000 traffic control API (TCI) can apply traffic control to outgoing traffic on behalf of non QoS-aware applications. The traffic control functionalities available in Windows 2000 include:

  • Packet scheduling
  • 802.1p marking
  • DSCP marking

However, the usage of 802.1p marking and DSCP marking through the TCI is discouraged because they bypass the policy and resource control in a QoS- enabled network. Also, the use of the TCI requires administrative privileges on the local computer.

Microsoft recommends that developers use the Winsock Generic QoS API to develop QoS-aware applications to take full advantage of the policy and resource control in a QoS-enabled network.

Please note that the traffic control API is not available for Microsoft Windows 98.


Two primary functions in the TCI are TcAddFlow and TcAddFilter. The TC_GEN_FLOW structure in the TcAddFlow call includes the sending of Flowspec. The sequence of packets that are subject to the same TC_GEN_FLOW constitutes a flow. The TC_GEN_FILTER in the TcAddFilter function describes the attributes that classify packets into the corresponding flow.

The 802.1p marking is controlled by the presence of a QOS_OBJECT_TRAFFIC_CLASS object in the TC_GEN_FLOW structure. The DiffServ Code Point (DSCP) marking is controlled by the presence of a QOS_OBJECT_DS_CLASS object in the TC_GEN_FLOW structure. A 802.1p marked packet is given priority treatment at the 802.1p aware switch (layer 2), and a DSCP marked packet is given priority treatment at the DSCP aware router (layer 3).

In a typical QoS-enabled network, DSCP aware routers (and optionally 802.1p aware switches) are placed at strategic nodes within the network topology. Network managers set the policy and resource control in a policy server (Policy Decision Point, or PDP) to control the traffic admission and marking at the preceding nodes as well as the individual hosts (Policy Enforcement Point, or PEP). Traffic control programs that perform 802.1p and DSCP marking without contacting the policy server can potentially disrupt the QoS operations over the entire network and should be avoided.

The preferred usage of TCI for Windows 2000-based computers is the packet scheduling functionality. By providing appropriate scheduling parameters in the sending Flowspec, the QOS_OBJECT_SD_MODE object, and the QOS_OBJECT_SHAPING_RATE object within the TC_GEN_FLOW structure, the local administrator can limit the amount and rate of traffic non QoS-aware applications are allowed to put on the local segment of the network. Please note that mis-configured flows may drop packets or cause the local buffer to grow and thus leak memory unnecessarily.

If you want QoS in your network, you should consider Generic Quality of Service (GQoS) enabling for your Winsock applications. A GQoS application that runs on a Windows 2000-based computer or a Windows 98-based computer triggers the Resource Reservation Protocol (RSVP) service provider to perform end to end RSVP signaling. The PDPs and PEPs that are in the RSVP signaling path perform necessary policy and resource control in all network segments between the two end systems.

If your network is managed by a Windows 2000 domain, end to end QoS can even be achieved for your GQoS applications without dedicated QoS-aware routers, switches, or policy servers. You can provision the resource usage for each subnet based on the user identity from the Windows 2000 QoS Admission Control Service/Subnet Bandwidth Manager (ACS/SBM). The RSVP provider on Windows 2000 directs the RSVP PATH messages to the subnet's Designated Subnet Bandwidth Manager (DSBM), which plays the role of PEP and PDP. Initially, the flow generated by the GQoS program is best effort only. After the user is authenticated by ACS/DSBM and policy and resource control is approved, the RESV message is returned to the sending host. The information contained in the RESV message makes the local RSVP provider modify the best effort flow so that the TCI provides the desired service level and priority mark for the traffic.


Platform SDK documentation about Quality of Service, and Windows Socket version 2 is available in the "Platform SDK/Networking and Directory Services" in the MSDN subscription CD. This documentation is also available from MSDN Online at the following Web address:

Windows 2000 Online Help; topic "Network Interoperability/QoS Admission Control".

Keywords: kbgqos kbinfo kbtrafficcontrol KB254961