QOSCloseHandle 函数 (qos2.h)
QOSCloseHandle 函数关闭 QOSCreateHandle 函数返回的句柄。
语法
ExternC BOOL QOSCloseHandle(
[in] HANDLE QOSHandle
);
参数
[in] QOSHandle
QOSCreateHandle 返回的 QOS 子系统的句柄。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,返回值为 0。 要获得更多的错误信息,请调用 GetLastError。
返回代码 | 说明 |
---|---|
|
QOSHandle 参数无效。 |
注解
在关闭的句柄上添加的所有流将立即从系统中删除。 流出用于创建这些流的套接字的任何流量将不再标记为优先级值。 ERROR_ABORTED立即完成对这些流的任何挂起操作。
如果通过上一次调用 QOSStartTrackingClient 函数关闭的句柄跟踪任何客户端, QOSCloseHandle 指示应用程序不再使用客户端终结点。
示例
以下“CleanUpQos”函数演示了 QOSRemoveSocketFromFlow 和 QOSCloseHandle 的用法:
有关完整示例代码列表,请参阅Windows SDK。 SDK 文件夹:Samples\NetDs\GQos\Qos2
必须包含 Winsock2.h 头文件才能使用 Winsock 定义的标识符或函数。
int CleanUpQos( HANDLE qosHandle,
SOCKET connSocket,
QOS_FLOWID qosFlowId,
DWORD qosFlags // qosFlags must be 0
)
{
// To ensure against generating an ERROR_OPERATION_ABORTED exception
// use a separate thread and Mutex protection to verify completion
// of QOSRemoveSocketFromFlow before calling QOSCloseHandle.
int result = 0;
if (qosFlowId != 0)
{
if( QOSRemoveSocketFromFlow(
qosHandle,
connSocket,
qosFlowId,
qosFlags) != TRUE)
result = WSAGetLastError();
}
// Under Mutex protection, add Wait function here.
if (qosHandle != NULL)
{
if( QOSCloseHandle(qosHandle) != TRUE)
result = WSAGetLastError();
}
return(result);
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | qos2.h (包括 Qos2.h) |
Library | Qwave.lib |
DLL | Qwave.dll |