WSACancelAsyncRequest()

WSACancelAsyncRequest()函式用於取消一次異步操作,該異步操作應是以一個WSAAsyncGetXByY()函式(諸如WSAAsyncGetHostByName())啟動的.hAsyncTaskHandle參數標識了要取消的操作,它應由初始函式作為異步任務句柄返回.

基本介紹

  • 中文名:WSACancelAsyncRequest()
  • 函式:類型
  • 作用:取消一次異步操作
  • 啟動函式:WSAAsyncGetXByY()函式
簡述,注釋,返回值,評論,錯誤代碼,

簡述

取消一次未完成的異步操作.
#include <winsock.h>
int PASCAL FAR WSACancelAsyncRequest(HANDLE hAsyncTackHandle);
hAsyncTaskHandle 指明要取消的異步操作.

注釋

WSACancelAsyncRequest()函式用於取消一次異步操作,該異步操作應是以一個WSAAsyncGetXByY()函式(諸如WSAAsyncGetHostByName())啟動的.hAsyncTaskHandle參數標識了要取消的操作,它應由初始函式作為異步任務句柄返回.

返回值

0 異步操作成功地被取消.
SOCKET_ERROR 其它情況.(同時可通過調用WSAGetLastError()獲得錯誤代碼)

評論

試圖取消一個已存在的異步操作WSAAsyncGetXByY()可能失敗(錯誤代碼WSAEALREADY),原
因有二:首先,原來的操作已經完成,並且應用程式已經處理了結果訊息。其次,原始操作已經完成,但結果訊息仍在應用程式視窗佇列中等待。
關於Windows Sockets提供者的說明:
應用程式是否能有效地區分WSAEINVAL和WSAEALREADY是不清楚的,因為在這兩種情況下,錯誤代碼指出不存在指定句柄的異步操作在運行。(小例外:0總是非法的異步任務句柄。)Windows Sockets規格說明不會規定一個Windows Sockets實現怎樣區分這兩種情況。最大可能的情況是,Windows Sockets應用程式應將兩種錯誤視為相同。

錯誤代碼

WSANOTINITIALISED 在使用本API前必須進行一次成功的WSAStartup()調用.
WSAENETDOWN WINDOWS SOCKETS實現已檢測到網路子系統故障.
WSAEINVAL 指出指定的參數之一是非法的.
WSAEINPROGRESS 一個阻塞的Windows Sockets操作正在進行.
WSAEALREADY 被廢除的異步調用已經完成.
參見

相關詞條

熱門詞條

聯絡我們