Quality of Service (QOS)
Overview of the Quality of Service (QOS) technology.
To develop Quality of Service (QOS), you need these headers:
For programming guidance for this technology, see:
Enumerations
FilterType The FilterType enumeration specifies the type of filter used for an RSVP FILTERSPEC. |
QOS_FLOWRATE_REASON The QOS_FLOWRATE_REASON enumeration indicates the reason for a change in a flow's bandwidth. |
QOS_NOTIFY_FLOW The QOS_NOTIFY_FLOW enumeration specifies the circumstances that must be present for the QOSNotifyFlow function to send a notification. |
QOS_QUERY_FLOW The QOS_QUERY_FLOW enumeration indicates the type of information a QOSQueryFlow function will request. |
QOS_SET_FLOW The QOS_SET_FLOW enumeration indicates what is being changed about a flow. |
QOS_SHAPING The QOS_SHAPING enumeration defines the shaping behavior of a flow. |
QOS_TRAFFIC_TYPE The QOS_TRAFFIC_TYPE enumeration defines the various traffic types. Each flow has a single traffic type. This allows the QOS subsystem to apply user-specified policies to each type. |
Functions
CBADMITRESULT The cbAdmitResult function is used by LPMs to return results for the LPM_AdmitRsvpMsg request. |
CBGETRSVPOBJECTS The cbGetRsvpObjects function is a callback function for LPMs to asynchronously return results for LPM_GetRsvpObjects requests. |
LPM_AdmitRsvpMsg The LPM_AdmitRsvpMsg function is called by the PCM to pass RSVP messages to the LPM for policy based�admission control decisions. |
LPM_CommitResv The LPM_CommitResv function is called by the PCM to obtain reservation commitment decisions from the LPM. |
LPM_Deinitialize The LPM_Deinitialize function allows the PCM to instruct LPMs to deinitialize, whether due to system shutdown or a change in Designated Subnet Bandwidth Manager (DSBM) status. |
LPM_DeleteState The LPM_DeleteState function is called by the PCM to delete the LPMs' RSVP state information. |
LPM_GetRsvpObjects The LPM_GetRsvpObjects function allows the PCM to query LPMs for policy data. |
LPM_Initialize The LPM_Initialize function initializes a local policy module (LPM). |
LPM_IpAddressTable The LPM_IpAddressTable function is used by the PCM to pass a list of IP addresses assigned to the Windows 2000 Server upon which the LPM is initialized. |
PALLOCMEM The PALLOCMEM function is a memory allocation function provided by the PCM, used for allocating memory when returning policy information to the PCM. |
PFREEMEM The PFREEMEM function is a memory-freeing function provided by the PCM. |
QOSAddSocketToFlow Adds a new flow for traffic. |
QOSCancel Cancels a pending overlapped operation, like QOSSetFlow. |
QOSCloseHandle The QOSCloseHandle function closes a handle returned by the QOSCreateHandle function. |
QOSCreateHandle This function initializes the QOS subsystem and the QOSHandle parameter. The QOSHandle parameter is used when calling other QOS functions. QOSCreateHandle must be called before any other functions. |
QOSEnumerateFlows Enumerates all existing flows. |
QOSNotifyFlow Registers the calling application to receive a notification. |
QOSQueryFlow Requests information about a specific flow. |
QOSRemoveSocketFromFlow Notifies the QOS subsystem that a previously added flow has been terminated. |
QOSSetFlow Is called by an application to request the QOS subsystem to prioritize the application's packets and change the flow traffic. |
QOSStartTrackingClient The QOSStartTrackingClient function notifies the QOS subsystem of the existence of a new client. |
QOSStopTrackingClient The QOSStopTrackingClient function notifies the QoS subsystem to stop tracking a client that has previously used the QOSStartTrackingClient function. If a flow is currently in progress, this function will not affect it. |
TcAddFilter The TcAddFilter function associates a new filter with an existing flow that allows packets matching the filter to be directed to the associated flow. |
TcAddFlow The TcAddFlow function adds a new flow on the specified interface. |
TcCloseInterface The TcCloseInterface function closes an interface previously opened with a call to TcOpenInterface. All flows and filters on a particular interface should be closed before closing the interface with a call to TcCloseInterface. |
TcDeleteFilter The TcDeleteFilter function deletes a filter previously added with the TcAddFilter function. |
TcDeleteFlow The TcDeleteFlow function deletes a flow that has been added with the TcAddFlow function. Clients should delete all filters associated with a flow before deleting it, otherwise, an error will be returned and the function will not delete the flow. |
TcDeregisterClient The TcDeregisterClient function deregisters a client with the Traffic Control Interface (TCI). |
TcEnumerateFlows The TcEnumerateFlows function enumerates installed flows and their associated filters on an interface. |
TcEnumerateInterfaces The TcEnumerateInterfaces function enumerates all traffic control�enabled network interfaces. Clients are notified of interface changes through the ClNotifyHandler function. |
TcGetFlowNameA The TcGetFlowName function provides the name of a flow that has been created by the calling client. (ANSI) |
TcGetFlowNameW The TcGetFlowName function provides the name of a flow that has been created by the calling client. (Unicode) |
TCI_ADD_FLOW_COMPLETE_HANDLER The ClAddFlowComplete function is used by traffic control to notify the client of the completion of its previous call to the TcAddFlow function. |
TCI_DEL_FLOW_COMPLETE_HANDLER The ClDeleteFlowComplete function is used by traffic control to notify the client of the completion of its previous call to the TcDeleteFlow function. |
TCI_MOD_FLOW_COMPLETE_HANDLER The ClModifyFlowComplete function is used by traffic control to notify the client of the completion of its previous call to the TcModifyFlow function. |
TCI_NOTIFY_HANDLER The ClNotifyHandler function is used by traffic control to notify the client of various traffic control�specific events, including the deletion of flows, changes in filter parameters, or the closing of an interface. |
TcModifyFlow The TcModifyFlow function modifies an existing flow. When calling TcModifyFlow, new Flowspec parameters and any traffic control objects should be filled. |
TcOpenInterfaceA The TcOpenInterface function opens an interface. (ANSI) |
TcOpenInterfaceW The TcOpenInterface function opens an interface. (Unicode) |
TcQueryFlowA The TcQueryFlow function queries traffic control for the value of a specific flow parameter based on the name of the flow. The name of a flow can be retrieved from the TcEnumerateFlows function or from the TcGetFlowName function. (ANSI) |
TcQueryFlowW The TcQueryFlow function queries traffic control for the value of a specific flow parameter based on the name of the flow. The name of a flow can be retrieved from the TcEnumerateFlows function or from the TcGetFlowName function. (Unicode) |
TcQueryInterface The TcQueryInterface function queries traffic control for related per-interface parameters. |
TcRegisterClient The TcRegisterClient function is used to register a client with the traffic control interface (TCI). The TcRegisterClient function must be the first function call a client makes to the TCI. |
TcSetFlowA The TcSetFlow function sets individual parameters for a given flow. (ANSI) |
TcSetFlowW The TcSetFlow function sets individual parameters for a given flow. (Unicode) |
TcSetInterface The TcSetInterface function sets individual parameters for a given interface. |
Structures
AD_GENERAL_PARAMS The AD_GENERAL_PARAMS structure contains the General Characterization Parameters contained in the RSVP Adspec object. |
ADDRESS_LIST_DESCRIPTOR The ADDRESS_LIST_DESCRIPTOR structure provides network address descriptor information for a given interface. |
ADSPEC The ADSPEC structure contains Adspec message information for RSVP. |
CONTROL_SERVICE The CONTROL_SERVICE structure contains supported RSVP service types. |
CtrlLoadFlowspec The CtrlLoadFlowspec structure contains a Controlled Load FLOWSPEC. |
ENUMERATION_BUFFER The ENUMERATION_BUFFER structure contains information specific to a given flow, including flow name, the number of filters associated with the flow, and an array of filters associated with the flow. |
ERROR_SPEC The ERROR_SPEC structure contains RSVP error messages. |
Error_Spec_IPv4 The Error_Spec_IPv4 structure stores error code information for RSVP transmissions. |
FILTER_SPEC The FILTER_SPEC structure stores information about an RSVP FILTERSPEC. |
Filter_Spec_IPv4 The Filter_Spec_IPv4 structure contains information about an IPv4 FILTERSPEC. |
Filter_Spec_IPv4GPI The Filter_Spec_IPv4GPI structure contains generalized port ID information about an IPv4 FILTERSPEC. |
FLOW_DESC The FLOW_DESC structure contains flow descriptor information for RSVP. |
FLOWDESCRIPTOR The FLOWDESCRIPTOR structure specifies one or more filters for a given FLOWSPEC. |
FLOWSPEC The FLOWSPEC structure provides quality of service parameters to the RSVP SP. |
Gads_parms_t The Gads_parms_t structure stores guaranteed service Adspec parameters. |
GenAdspecParams The GenAdspecParams structure contains general path characterization parameters. |
GenTspec The GenTspec structure stores generic Tspec information. |
GenTspecParms The GenTspecParms structure stores generic Tspec parameters. |
GuarFlowSpec The GuarFlowSpec structure contains guaranteed flowspec information. |
GuarRspec The GuarRspec structure contains guaranteed Rspec information. |
ID_ERROR_OBJECT The ID_ERROR_OBJECT structure contains error message information for Identity Policy Elements for RSVP. |
IDPE_ATTR The IDPE_ATTR structure contains identity policy element attribute information. |
IN_ADDR_IPV4 The IN_ADDR_IPV4 union stores an IPv4 address for use with RSVP FILTERSPECs. |
IN_ADDR_IPV6 The IN_ADDR_IPV6 structure stores an IPv6 address for use with RSVP FILTERSPECs. |
IntServFlowSpec The IntServFlowSpec structure contains information about Integrated Services flowspecs. |
IntServMainHdr The IntServMainHdr structure is a header for Integrated Services RSVP objects. |
IntServParmHdr The IntServParmHdr structure is a header for Integrated Services parameters. |
IntServServiceHdr The IntServServiceHdr structure is a header for Integrated Services service objects. |
IntServTspecBody The IntServTspecBody structure contains information for an RSVP Tspec. |
IP_PATTERN The IP_PATTERN structure applies a specific pattern or corresponding mask for the IP protocol. The IP_PATTERN structure designation is used by the traffic control interface in the application of packet filters. |
IPX_PATTERN The IPX_PATTERN structure applies a specific pattern or corresponding mask for the IPX protocol. The IPX_PATTERN structure designation is used by the traffic control interface in the application of packet filters. |
IS_ADSPEC_BODY The IS_ADSPEC_BODY structure contains Integrated Services Adspec information. |
IS_FLOWSPEC The IS_FLOWSPEC structure stores an Integrated Services FLOWSPEC object. |
LPM_INIT_INFO The LPM_INIT_INFO structure contains local policy module initialization information. |
LPMIPTABLE The LPMIPTABLE structure contains IP information, including the SNMP index, IP address, and subnet mask for each interface. The LPMIPTABLE structure is supplied as an argument for the Lpm_IpAddressTable function. |
PARAM_BUFFER The PARAM_BUFFER structure describes the format of the parameter buffer that can be included in the CONTROL_SERVICE structure. |
POLICY_DATA The POLICY_DATA structure contains policy data for RSVP messages. |
POLICY_DECISION The POLICY_DECISION structure contains RSVP policy decision information. |
POLICY_ELEMENT The POLICY_ELEMENT (lpmapi.h) structure contains an RSVP policy element. |
POLICY_ELEMENT The POLICY_ELEMENT (infocard.h) structure contains an RSVP policy element. (POLICY_ELEMENT) |
PS_ADAPTER_STATS The PS_ADAPTER_STATS structure provides statistical packet shaper information about a specified adapter. Note that the PS_ADAPTER_STATS structure is used in conjunction with the PS_COMPONENT_STATS structure. |
PS_COMPONENT_STATS The PS_COMPONENT_STATS structure enables applications to get statistical information regarding their TC-enabled flow. |
PS_CONFORMER_STATS The PS_CONFORMER_STATS structure provides statistical packet shaper information about a particular flow. Note that the PS_CONFORMER_STATS structure is used in conjunction with the PS_COMPONENT_STATS structure. |
PS_DRRSEQ_STATS The PS_DRRSEQ_STATS structure provides network interface card (NIC) and packet sequencer�packet shaper statistics. Note that the PS_DRRSEQ_STATS structure is used in conjunction with the PS_COMPONENT_STATS structure. |
PS_FLOW_STATS The PS_FLOW_STATS structure provides statistical packet shaper information about a particular flow. Note that the PS_FLOW_STATS structure is used in conjunction with the PS_COMPONENT_STATS structure. |
PS_SHAPER_STATS The PS_SHAPER_STATS structure provides statistical packet shaper information about the computer's packet shaper component. Note that the PS_SHAPER_STATS structure is used in conjunction with the PS_COMPONENT_STATS structure. |
QOS The QOS structure provides the means by which QOS-enabled applications can specify quality of service parameters for sent and received traffic on a particular flow. |
QOS_DESTADDR The QOS object QOS_DESTADDR is used during a call to the WSAIoctl (SIO_SET_QOS) function in order to avoid issuing a connect function call for a sending socket. |
QOS_DIFFSERV The QOS_DIFFSERV traffic control object is used to specify filters for the packet scheduler when it operates in Differentiated Services Mode. |
QOS_DIFFSERV_RULE The QOS_DIFFSERV_RULE structure is used in conjunction with the traffic control object QOS_DIFFSERV to provide Diffserv rules for a given flow. |
QOS_DS_CLASS The traffic control object QOS_DS_CLASS enables application developers to override the default Diffserv code point (DSCP) value for the IP packets associated with a given flow. By default, the DSCP value is derived from the flow's ServiceType. |
QOS_FLOW_FUNDAMENTALS The QOS_FLOW_FUNDAMENTALS structure contains basic information about a flow. |
QOS_FLOWRATE_OUTGOING The QOS_FLOWRATE_OUTGOING structure is used to set flow rate information in the QOSSetFlow function. |
QOS_FRIENDLY_NAME The QOS_FRIENDLY_NAME traffic control object associates a friendly name with flow. |
QOS_OBJECT_HDR The QOS object QOS_OBJECT_HDR is attached to each QOS object. It specifies the object type and its length. |
QOS_PACKET_PRIORITY The QOS_PACKET_PRIORITY structure that indicates the priority of the flow traffic. |
QOS_SD_MODE The QOS object QOS_SD_MODE defines the behavior of the traffic control-packet shaper component. |
QOS_SHAPING_RATE The QOS object QOS_SHAPING_RATE specifies the uniform traffic shaping rate be applied to a given flow. |
QOS_TCP_TRAFFIC The QOS_TCP_TRAFFIC structure is used to indicate that IP Precedence and UserPriority mappings for a given flow must be set to system defaults for TCP traffic. |
QOS_TRAFFIC_CLASS The traffic control object QOS_TRAFFIC_CLASS is used to override the default UserPriority value ascribed to packets that classify the traffic of a given flow. |
QOS_VERSION The QOS_VERSION structure indicates the version of the QOS protocol. |
QualAppFlowSpec The QualAppFlowSpec structure contains FLOWSPEC information for a qualitative application. |
QualTspec The QualTspec structure contains qualitative Tspec information. |
QualTspecParms The QualTspecParms structure contains qualitative Tspec parameters. |
RESV_STYLE The RESV_STYLE structure contains information about RSVP RESV style. |
RSVP_ADSPEC The QOS object RSVP_ADSPEC provides a means by which information describing network devices along the data path between sender and receiver, pertaining to RSVP functionality and available services, is provided or retrieved. |
RSVP_FILTERSPEC The RSVP_FILTERSPEC structure provides RSVP FILTERSPEC information. |
RSVP_FILTERSPEC_V4 The RSVP_FILTERSPEC_V4 structure stores information for a FILTERSPEC on an IPv4 address. |
RSVP_FILTERSPEC_V4_GPI The RSVP_FILTERSPEC_V4_GPI structure provides general port identifier information for a given FILTERSPEC. |
RSVP_FILTERSPEC_V6 The RSVP_FILTERSPEC_V6 structure stores information for a FILTERSPEC on an IPv6 address. |
RSVP_FILTERSPEC_V6_FLOW The RSVP_FILTERSPEC_V6_FLOW structure provides flow label information for an IPv6 FILTERSPEC. |
RSVP_FILTERSPEC_V6_GPI The RSVP_FILTERSPEC_V6_GPI structure provides general port identifier information for a given FILTERSPEC on an IPv6 address. |
RSVP_HOP The RSVP_HOP structure contains information about an RSVP-enabled hop. |
Rsvp_Hop_IPv4 The Rsvp_Hop_IPv4 structure stores information about an RSVP-enabled IPv4 hop. |
RSVP_MSG_OBJS The RSVP_MSG_OBJS structure contains RSVP message objects. |
RSVP_POLICY The RSVP_POLICY structure stores one or more undefined policy elements. |
RSVP_POLICY_INFO The RSVP_POLICY_INFO structure stores undefined policy elements retrieved from RSVP. |
RSVP_RESERVE_INFO The QOS object RSVP_RESERVE_INFO, through the ProviderSpecific buffer, enables RSVP behavior for a given flow to be specified or modified at a granular level, and enables default RSVP style settings for a flow to be overridden. |
RSVP_SCOPE The RSVP_SCOPE structure provides RSVP scope information. |
RSVP_SESSION The RSVP_SESSION structure stores information about an RSVP SESSION message. |
RSVP_STATUS_INFO The QOS object RSVP_STATUS_INFO provides information regarding the status of RSVP for a given flow, including event notifications associated with monitoring FD_QOS events, as well as error information. |
RsvpObjHdr The RsvpObjHdr structure provides an object header for an RSVP message. |
Scope_list_ipv4 The Scope_list_ipv4 structure contains RSVP SCOPE object information. |
SENDER_TSPEC The SENDER_TSPEC structure contains information for an RSVP sender Tspec. |
Session_IPv4 The Session_IPv4 structure stores information about an IPv4 RSVP SESSION object. |
TC_GEN_FILTER The TC_GEN_FILTER structure creates a filter that matches a certain set of packet attributes or criteria, which can subsequently be used to associate packets that meet the attribute criteria with a particular flow. |
TC_GEN_FLOW The TC_GEN_FLOW structure creates a generic flow for use with the traffic control interface. The flow is customized through the members of this structure. |
TC_IFC_DESCRIPTOR The TC_IFC_DESCRIPTOR structure is an interface identifier used to enumerate interfaces. |
TCI_CLIENT_FUNC_LIST The TCI_CLIENT_FUNC_LIST structure is used by the traffic control interface to register and then access client-callback functions. Each member of TCI_CLIENT_FUNC_LIST is a pointer to the client provided�callback function. |