QOSCloseHandle 函式 (qos2.h)
QOSCloseHandle 函式會關閉 QOSCreateHandle 函式所傳回的句柄。
語法
ExternC BOOL QOSCloseHandle(
[in] HANDLE QOSHandle
);
參數
[in] QOSHandle
QOSCreateHandle 所傳回之 QOS 子系統的句柄。
傳回值
如果函式成功,則傳回非零的值。
如果函式失敗,則傳回值為 0。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
傳回碼 | Description |
---|---|
|
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) |
程式庫 | Qwave.lib |
Dll | Qwave.dll |