QOSQueryFlow 函数 (qos2.h)

QOSQueryFlow 函数请求有关添加到 QoS 子系统的特定流的信息。 可以异步调用此函数。

语法

ExternC BOOL QOSQueryFlow(
  [in]            HANDLE         QOSHandle,
  [in]            QOS_FLOWID     FlowId,
  [in]            QOS_QUERY_FLOW Operation,
  [in, out]       PULONG         Size,
  [out]           PVOID          Buffer,
  [in, optional]  DWORD          Flags,
  [out, optional] LPOVERLAPPED   Overlapped
);

参数

[in] QOSHandle

QOSCreateHandle 返回的 QOS 子系统的句柄

[in] FlowId

指定流标识符。 QOS_FLOWID是无符号 32 位整数。

[in] Operation

指定要查询的流信息类型。 此参数指定 Buffer 将包含的结构。

含义
QOSQueryFlowFundamentals
缓冲区 将包含 QOS_FLOW_FUNDAMENTALS 结构。
QOSQueryPacketPriority
缓冲区 将包含 QOS_PACKET_PRIORITY 结构。
QOSQueryOutgoingRate
缓冲区 将包含一个 UINT64 值,该值指示请求协定时指定的流速(以每秒位为单位)。

[in, out] Size

指示 Buffer 参数的大小(以字节为单位)。

函数返回时,如果成功,此参数将指定复制到 Buffer 中的字节数。

如果此调用因 ERROR_INSUFFICIENT_BUFFER失败,此参数将指示所需的最小 缓冲区 大小才能成功完成此操作。

[out] Buffer

指向 由 Operation 参数的值指定的结构的指针。

[in, optional] Flags

与返回的数据相关的标志。

含义
QOS_QUERYFLOW_FRESH
QOS 子系统将仅返回最新数据,而不返回缓存的数据。 如果新数据不可用,它将尝试获取此类数据,但代价是可能会花费更多时间。 如果无法执行此操作,调用将失败,并 显示错误代码ERROR_RETRY

仅当 Operation 参数设置为 QOSQueryFlowFundamentals 时,此标志才适用。

[out, optional] Overlapped

指向用于异步输出的 OVERLAPPED 结构的指针。 如果未异步调用此函数,则必须将其设置为 NULL

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,返回值为 0。 要获得更多的错误信息,请调用 GetLastError。 一些可能的错误代码随之而来。

返回代码 说明
ERROR_ACCESS_DISABLED_BY_POLICY
QoS 子系统当前由策略配置为不允许在此主机和目标主机之间的网络路径上执行此操作。 例如,默认策略阻止 qWAVE 试验运行到链接外目标。
ERROR_TIMEOUT
在收集足够有用的信息之前,对 QOS 子系统的请求已超时。
ERROR_INSUFFICIENT_BUFFER
Size 参数指定的缓冲区长度不足以用于查询的数据。 Size 参数现在包含所需的最小大小。
ERROR_INVALID_HANDLE
QOSHandle 参数无效。
ERROR_INVALID_PARAMETER
FlowId 参数或缓冲区大小不足。
ERROR_NOT_FOUND
指定的 FlowId 无效。
ERROR_NOT_ENOUGH_MEMORY
指示内存分配失败。
ERROR_NOT_SUPPORTED
要执行的操作需要 QoS 子系统没有的信息。 目前不支持在此网络上获取此信息。 例如,无法在目标主机处于非链接的网络路径上获取带宽估算。
ERROR_NO_SYSTEM_RESOURCES
资源不足,无法执行该操作。
ERROR_IO_DEVICE
由于出现 I/O 设备错误,因此无法执行该请求。
ERROR_IO_PENDING
指示已成功启动更新流请求。
ERROR_DEVICE_REINITIALIZATION_NEEDED
由于硬件错误,指示的设备需要重新初始化。 应用程序应清理并再次调用 QOSCreateHandle
ERROR_ADAP_HDW_ERR
网络适配器硬件出错。
ERROR_HOST_UNREACHABLE
无法访问网络位置。
ERROR_NO_DATA
不是要返回的有效数据。
ERROR_RETRY
目前有关网络状况的数据不足,无法回答查询。 这通常是一种暂时性状态,qWAVE 在确定网络状态之前会等待更多数据,因此存在谨慎态度。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 qos2.h (包括 Qos2.h)
Library Qwave.lib
DLL Qwave.dll

另请参阅

质量 Windows 音频/视频体验 (qWAVE)