LPWSPENUMNETWORKEVENTS 回呼函式 (ws2spi.h)

LPWSPEnumNetworkEvents 函式會報告所指出套接字的網路事件發生次數。

語法

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

int Lpwspenumnetworkevents(
  [in]  SOCKET s,
  [in]  WSAEVENT hEventObject,
  [out] LPWSANETWORKEVENTS lpNetworkEvents,
  [out] LPINT lpErrno
)
{...}

參數

[in] s

識別套接字的描述項。

[in] hEventObject

選擇性句柄,識別要重設的相關聯事件物件。

[out] lpNetworkEvents

WSANETWORKEVENTS 結構的指標,此結構會填入發生之網路事件的記錄和任何相關聯的錯誤碼。 WSANETWORKEVENTS 結構定義於下列文字中。

[out] lpErrno

錯誤碼的指標。

傳回值

如果作業成功,則傳回值為零。 否則會傳回值SOCKET_ERROR,而且 lpErrno 中提供特定的錯誤號碼。

錯誤碼 意義
WSAENETDOWN
網路子系統失敗。
WSAEINVAL
表示其中一個指定的參數無效。
WSAEINPROGRESS
封鎖的 Windows Sockets 呼叫正在進行中,或者服務提供者仍在處理回呼函式。
WSAENOTSOCK
描述項不是套接字。

備註

此函式用來報告自此函式上次叫用后,所指出套接字發生的網路事件。 它適用於與 LPWSPEventSelectLPWSPAsyncSelect 搭配使用,這會將事件物件與一或多個網路事件產生關聯。 當使用非零 lNetworkEvents 自變數呼叫 LPWSPEventSelectLPWSPAsyncSelect 時,網路事件的記錄就會開始,直到對 LPWSPEventSelectLPWSPAsyncSelect 進行另一個對應的呼叫,lNetworkEvents 自變數設為零為止。

LPWSPEnumNetworkEvents 只會報告透過 LPWSPEventSelect 提名的網路活動和錯誤。 請參閱 LPWSPSelectLPWSPAsyncSelect 的描述,以了解這些函式如何報告網路活動和錯誤。

套接字的網路事件內部記錄會複製到 lpNetworkEvents 所參考的結構,之後會清除內部網路事件記錄。 如果 hEventObject 為非 Null,則表示的事件物件也會重設。 Windows Sockets 提供者保證複製網路事件記錄、清除記錄,以及重設任何相關聯的事件物件都是不可部分完成的作業,如此一來,下一次出現的已提名網路事件將會導致事件物件設定。 在此函式傳回SOCKET_ERROR的情況下,不會重設相關聯的事件物件,也不會清除網路事件的記錄。

WSANETWORKEVENTS 結構定義於 WSANETWORKEVENTS 參考頁面上。

WSANETWORKEVENTS 結構的 lNetworkEvents 成員表示發生FD_XXX網路事件。 iErrorCode 陣列可用來包含任何相關聯的錯誤碼,其中陣列索引對應至 lNetworkEvents 中事件位的位置。 FD_READ_BIT和FD_WRITE_BIT等標識碼可用來編製 iErrorCode 陣列的索引。

請注意,只有 iErrorCode 陣列的元素會設定為對應至 lNetworkEvents 成員中設定的位。 其他成員不會修改 (這在與不知道新FD_ROUTING_INTERFACE_CHANGE和FD_ADDRESS_LIST_CHANGE事件) 的 Windows Socket 2 SPI 用戶端回溯相容性時很重要。

您可以傳回下列錯誤碼以及個別的網路事件。

事件:FD_CONNECT

錯誤碼 意義
WSAEAFNOSUPPORT
指定之系列中的位址無法用於此通訊端。
WSAECONNREFUSED
嘗試連線已強制拒絕。
WSAENETUNREACH
此時無法透過此主機連接網路。
WSAENOBUFS
沒有可用的緩衝區空間。 套接字無法連接。
WSAETIMEDOUT
嘗試連線逾時而不建立連線。

事件:FD_CLOSE

錯誤碼 意義
WSAENETDOWN
網路子系統失敗。
WSAECONNRESET
線上已由遠端端重設。
WSAECONNABORTED
線上因逾時或其他失敗而終止。

事件:FD_READ、FD_WRITE、FD_OOB、FD_ACCEPT、FD_QOS、FD_GROUP_QOS、FD_ADDRESS_LIST_CHANGE

錯誤碼 意義
WSAENETDOWN
網路子系統失敗。

事件:FD_ROUTING_INTERFACE_CHANGE

錯誤碼 意義
WSAENETUNREACH
指定的目的地已無法再連線。
WSAENETDOWN
網路子系統失敗。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 ws2spi.h

另請參閱

LPWSPEventSelect