Hopefully you've read the previous entry with the QOS2 sample. Here are the answers to questions you might have.
- What header file do I need to include? qos2.h
- Is this only for user-mode applications? yes it is. However, leave us a comment if you need a kernel mode QOS API. We'll want to learn more about your scenario.
- What library do I link against? qwave.lib
- What DLL will this pull into my application? qwave.dll
- QOSCreateHandle returns a file handle; can I attach it to a I/O completion port? yes, you can. Since some of the other calls take OVERLAPPED structures, you can use a completion port for asynchronous completions.
- Why do you set the QoSFlowID variable to 0 before calling QOSAddSocketToFlow? Because 0 signifies that you want a new flow. You could use another value to refer to an existing flow (which you would have created earlier). More about this later.
- Why did you use the QOS_NON_ADAPTIVE_FLOW flag? Because this is a non-adaptive scenario. More about this later.
- What is the flowtype QOSTrafficTypeExcellentEffort? It's one of the flow type the QOS subsystem will recognize. It maps to a set of DSCP and, if applicable, 802.1p values. Gabe wrote about the different flowtypes in his post about WMM recently.
Next we'll describe what else you can do with a non-adaptive flow.
- Mathias Jourdain