tcAddFlow 函数 (traffic.h)

TcAddFlow 函数在指定的接口上添加新流。 请注意,成功添加流并不一定表示处理流量的方式发生了变化;通过使用 TcAddFilter 函数将筛选器附加到添加的流,可影响流量处理更改。

已注册 AddFlowComplete 处理程序的流量控制客户端 (允许流量控制调用 ClAddFlowComplete 回调函数的机制,以便提醒客户端已完成的流添加,) 预期返回值为 ERROR_SIGNAL_PENDING。 有关详细信息,请参阅 流量控制对象

语法

ULONG TcAddFlow(
  [in]  HANDLE       IfcHandle,
  [in]  HANDLE       ClFlowCtx,
  [in]  ULONG        Flags,
  [in]  PTC_GEN_FLOW pGenericFlow,
  [out] PHANDLE      pFlowHandle
);

参数

[in] IfcHandle

与要添加流的接口关联的句柄。 此句柄是通过以前对 TcOpenInterface 函数的调用获取的。

[in] ClFlowCtx

客户端提供的流上下文句柄。 随后在引用添加的流时由流量控制使用。

[in] Flags

保留供将来使用。 必须设置为零。

[in] pGenericFlow

指向所安装流说明的指针。

[out] pFlowHandle

指向流量控制将返回流句柄的位置的指针。 应在后续调用流量控制时使用此流句柄来引用已安装的流。

返回值

添加流的请求可能被拒绝的原因有很多。 提供调用 TcAddFlow 时流量控制返回的错误代码,以帮助确定拒绝的原因。

返回代码 说明
NO_ERROR
执行函数时未出错。
ERROR_SIGNAL_PENDING
函数正在异步执行;添加流或进程完成后,将通过客户端公开的 ClAddFlowComplete 函数回调客户端。
ERROR_INVALID_HANDLE
接口句柄无效。
ERROR_NOT_ENOUGH_MEMORY
系统内存不足。
ERROR_INVALID_PARAMETER
参数无效。
ERROR_INVALID_SERVICE_TYPE
提供了未指定或错误的 INTSERV 服务类型。
ERROR_INVALID_TOKEN_RATE
提供了未指定或错误的 TOKENRATE 值。
ERROR_INVALID_PEAK_RATE
PEAKBANDWIDTH 值无效。
ERROR_INVALID_SD_MODE
SHAPEDISCARDMODE 无效。
ERROR_INVALID_QOS_PRIORITY
优先级值无效。
ERROR_INVALID_TRAFFIC_CLASS
流量类值无效。
ERROR_NO_SYSTEM_RESOURCES
没有足够的资源来容纳请求的流。
ERROR_TC_OBJECT_LENGTH_INVALID
为 TC 对象指定的长度不正确。
ERROR_INVALID_DIFFSERV_FLOW
适用于 Diffserv 流。 指示使用无效参数传递 QOS_DIFFSERV 对象。
ERROR_DS_MAPPING_EXISTS
适用于 Diffserv 流。 指示TC_GEN_FLOW中指定的 QOS_DIFFSERV_RULE 已应用于接口上的现有流。
ERROR_INVALID_SHAPE_RATE
QOS_SHAPING_RATE 对象是使用无效的 ShapingRate 成员传递的。
ERROR_INVALID_DS_CLASS
QOS_DS_CLASS无效。
ERROR_NETWORK_UNREACHABLE
网线未插入适配器。

注解

如果 TcAddFlow 函数返回ERROR_SIGNAL_PENDING,则将在与调用 TcAddFlow 函数的线程不同的线程上调用 ClAddFlowComplete 函数。

只有添加筛选器会影响流量控制。 但是,添加流将导致在流量控制组件中提交资源。 这样,流量控制就可以为处理添加的流上的流量做好准备。

流量控制可能会出于各种原因删除流,包括由于带宽限制而无法容纳流,以及调整的策略要求。 客户端通过 ClNotifyHandler 回调函数收到已删除流的通知,其中包含 TC_NOTIFY_FLOW_CLOSE 事件。

注意 使用 TcAddFlow 函数需要管理权限。
 

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 traffic.h
Library Traffic.lib
DLL Traffic.dll

另请参阅

ClAddFlowComplete

ClNotifyHandler

TC_GEN_FLOW

TcAddFilter

TcOpenInterface