QOSEnumerateFlows 函数 (qos2.h)

QOSEnumerateFlows 函数枚举所有现有流。

语法

ExternC BOOL QOSEnumerateFlows(
  [in]      HANDLE QOSHandle,
  [in, out] PULONG Size,
  [out]     PVOID  Buffer
);

parameters

[in] QOSHandle

QOSCreateHandle 返回的 QOS 子系统的句柄

[in, out] Size

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

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

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

[out] Buffer

指向 QOS_FlowId 流标识符数组的指针。 QOS_FlowId是无符号 32 位整数。

返回值

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

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

返回代码 说明
ERROR_INVALID_HANDLE
QOSHandle 参数无效。
ERROR_INSUFFICIENT_BUFFER
缓冲区太小。 在输出中, Size 将包含所需的最小缓冲区大小。 然后,应使用指示大小的缓冲区再次调用此函数。
ERROR_INVALID_PARAMETER
DestAddr 参数无效。
ERROR_NOT_ENOUGH_MEMORY
指示内存分配失败。
ERROR_NO_SYSTEM_RESOURCES
资源不足,无法执行该操作。
ERROR_IO_DEVICE
由于出现 I/O 设备错误,因此无法执行该请求。
ERROR_DEVICE_REINITIALIZATION_NEEDED
由于硬件错误,指示的设备需要重新初始化。 应用程序应清理并再次调用 QOSCreateHandle

注解

成功调用此函数需要管理权限

调用 QOSEnumerateFlows 函数可检索 QOS 子系统上当前处于活动状态的 QOS_FlowId的列表。 然后,可以使用这些 QOS_FlowId来调用 QOSQueryFlow 函数,以获取有关各个流的详细信息。

此函数具有两次调用语义。 首先调用 以获取 缓冲区 大小 ,然后再次 调用 (,如果第一次调用失败, ERROR_INSUFFICIENT_BUFFER) 检索流列表。 如果自第一次调用以来添加了新流,则第二次调用可能会再次失败,并 ERROR_INSUFFICIENT_BUFFER

无法修改来自另一个进程的流。

要求

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

请参阅

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