QOSStartTrackingClient 函数 (qos2.h)
QOSStartTrackingClient 函数通知 QOS 子系统是否存在新客户端。 调用此函数会增加 QOS 子系统在调用 QOSSetFlow 以设置流时收集足够的网络路径信息的可能性。
语法
ExternC BOOL QOSStartTrackingClient(
[in] HANDLE QOSHandle,
[in] PSOCKADDR DestAddr,
DWORD Flags
);
参数
[in] QOSHandle
QOSCreateHandle 返回的 QOS 子系统的句柄。
[in] DestAddr
指向包含客户端设备的 IP 地址 的 sockaddr 结构的指针。 客户端由其 IP 地址和地址系列标识。 sockaddr 结构中指定的任何端口号将被忽略。
Flags
保留供将来使用。 必须设置为 0。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,返回值为 0。 要获得更多的错误信息,请调用 GetLastError。 一些可能的错误代码随之而来。
返回代码 | 说明 |
---|---|
|
QOSHandle 参数无效。 |
|
DestAddr 参数无效。 |
|
指示内存分配失败。 |
|
资源不足,无法执行该操作。 |
|
由于出现 I/O 设备错误,因此无法执行该请求。 |
|
由于硬件错误,指示的设备需要重新初始化。 应用程序应清理并再次调用 QOSCreateHandle 。 |
|
不支持该请求。 |
|
网络适配器硬件出错。 |
|
无法访问网络位置。 |
注解
收到 QOSStartTrackingClient 调用后,QoS 子系统开始收集有关客户端的信息,例如 QoS 功能和端到端路径上的可用带宽。
应用程序在发现可能需要 QoS 流的客户端设备后,应立即调用此函数。 例如,当媒体播放器设备首次连接到媒体服务器应用程序时,应调用此函数。
QOSStartTrackingClient 执行的网络试验不会在网络上引入值得注意的负载,即使长时间未启动流。 qWAVE 服务根据 QoS 子系统活动动态调整试验流量。
必须在接收器电脑或设备上实现链接层拓扑发现 (LLTD) 才能使此功能正常工作。
示例
以下代码演示了函数的使用、处理常见异常和所需的参数初始化。 实际参数值可能因 QoS 版本而异。 必须包含 Winsock2.h 头文件才能使用 Winsock 定义的标识符或函数。
QOS_VERSION Version;
HANDLE QoSHandle = NULL;
BOOL QoSResult = FALSE;
Version.MajorVersion = 1;
Version.MinorVersion = 0;
// Get a handle to the QoS subsystem (required for tracking).
QoSResult = QOSCreateHandle(
&Version,
&QoSHandle );
if(!QOSStartTrackingClient(QoSHandle, (sockaddr*)ptr->ai_addr, 0))
{
std::cerr << std::endl;
std::cerr << __FILE__ <<" Line: " << __LINE__ ;
std::cerr << " - QOSStartTrackingClient failed. Exception code: ";
std::cerr << GetLastError();
if (GetLastError() == ERROR_NOT_SUPPORTED)
{
std::cerr << std::endl;
std::cerr << " ERROR_NOT_SUPPORTED" << std::endl;
std::cerr << "This operation requires information";
std::cerr << "that the QoS subsystem does not have. " << std::endl;
}
}
else
std::cout << "QoS client tracking started." << std::endl;
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | qos2.h (包括 Qos2.h) |
Library | Qwave.lib |
DLL | Qwave.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈