A while back I wrote about the fundamentals of networking Quality of Service (QoS) including 802.1p and DSCP. Gabe recently wrote about WMM. With Vista soon to hit the market, it's time for us to talk about the new and old QoS APIs. Let's start with the old ones.
The idea of networking Quality of Service in Windows has been around for a long time. If you look at the APIs in Windows 2000 and Windows XP, you'll find at least 3 APIs for QoS. We reviewed each of them and decided to deprecate them. What this means is that, some time in the future, each of these APIs will be removed from Windows. Until they're removed though, backwards compatibility remains important. Therefore, although all of these APIs have been changed to some extent in Vista, we made sure to NOT break any dependencies applications might have on header files, libraries or DLLs. Here's what we did:
Overall, with QOS2 and Policy-based QoS, the TC API is no longer the right API to program to for your scenarios. Again, to maintain backwards compatibility, we kept this API in Vista. However, every one of its functions has been marked deprecated in the header file. If need be, with some work you can still compile against this API, and of course, the DLL will remain to ensure application compatibility.
Deprecating an API and its technology is never an easy decision. When we reviewed why and how people were using these APIs, we found that the new QOS2 API could always be used instead much more easily. If the new API doesn't meet your needs, please email us a description of your scenario and what you'd like this new platform API to do.
- Mathias Jourdain