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。 一些可能的错误代码随之而来。
返回代码 | 说明 |
---|---|
|
QOSHandle 参数无效。 |
|
缓冲区太小。 在输出中, Size 将包含所需的最小缓冲区大小。 然后,应使用指示大小的缓冲区再次调用此函数。 |
|
DestAddr 参数无效。 |
|
指示内存分配失败。 |
|
资源不足,无法执行该操作。 |
|
由于出现 I/O 设备错误,因此无法执行该请求。 |
|
由于硬件错误,指示的设备需要重新初始化。 应用程序应清理并再次调用 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 |