共用方式為


PFN_WSK_INSPECT_EVENT回呼函式 (wsk.h)

WskInspectEvent 事件回呼函式會通知 WSK 應用程式已收到已啟用條件式接受模式的接聽套接字上的連入連線要求。

語法

PFN_WSK_INSPECT_EVENT PfnWskInspectEvent;

WSK_INSPECT_ACTION PfnWskInspectEvent(
  [in, optional] PVOID SocketContext,
  [in]           PSOCKADDR LocalAddress,
  [in]           PSOCKADDR RemoteAddress,
  [in, optional] PWSK_INSPECT_ID InspectID
)
{...}

參數

[in, optional] SocketContext

接收傳入連線要求的接聽套接字之套接字內容的指標。 WSK 應用程式在呼叫 WskSocket 函式來建立接聽套接字時,會提供 WSK 子系統的這個指標。

[in] LocalAddress

緩衝區的指標,其中包含傳入連線要求抵達的本機傳輸位址。 緩衝區包含特定的SOCKADDR結構類型,其對應至WSK應用程式在建立接聽套接字時所指定的位址系列。

[in] RemoteAddress

緩衝區的指標,其中包含傳入連線要求的來源遠端傳輸位址。 緩衝區包含特定的SOCKADDR結構類型,其對應至WSK應用程式在建立接聽套接字時所指定的位址系列。

[in, optional] InspectID

WSK_INSPECT_ID 結構的指標。 結構的內容會識別正在檢查的連入連線要求。 如果此指標 NULL,則接聽套接字已不再運作,且 WSK 應用程式必須呼叫 WskCloseSocket 函式,以儘快關閉接聽套接字。

傳回值

WSK 應用程式的 WskInspectEvent 事件回呼函式可以傳回下列其中一個WSK_INSPECT_ACTION值:

傳回碼 描述
WskInspectAccept
已接受連入連線要求。
WskInspectReject
連入連線要求遭到拒絕。
WskInspectPend
WSK 應用程式無法判斷是否應立即接受或拒絕連入連線要求。

言論

WSK 子系統會在已啟用條件式接受模式的接聽套接字上呼叫 WSK 應用程式的 WskInspectEvent 事件回呼函式。 WSK 應用程式可以藉由啟用 SO_CONDITIONAL_ACCEPT 套接字選項,在接聽套接字上啟用條件式接受模式。 如需有條件地接受連入連線的詳細資訊,請參閱 接聽和接受傳入連線

如果 WSK 應用程式從 WskInspectEvent 事件回呼函式傳回 WskInspectAccept,WSK 子系統會繼續建立套接字連線。 WSK 子系統會藉由完成 WskAccept 函式的呼叫,或藉由呼叫 WSK 應用程式的 WskAcceptEvent 事件回呼函式,將套接字傳回至 WSK 應用程式。 如果在套接字連線完全建立之前卸除連入連線要求,WSK 子系統會呼叫 WSK 應用程式的 WskAbortEvent 事件回呼函式。

如果 WSK 應用程式從 WskInspectEvent 事件回呼函式傳回 WskInspectReject,則會卸除連入連線要求,而且不會建立套接字連線。

如果 WSK 應用程式從其 WskInspectEvent 事件回呼函式傳回 WskInspectPend,則應用程式必須在判斷傳入連線要求是否應接受或拒絕之後呼叫 WskInspectComplete 函式(除非同時中止傳入的連線要求)。 WSK 應用程式必須先將 InspectID 參數指向的 WSK_INSPECT_ID 結構內容複製到它自己的WSK_INSPECT_ID結構,再從 WskInspectEvent 事件回呼函式傳回。 WSK 應用程式會在完成檢查時,將指標傳遞給它自己的WSK_INSPECT_ID結構至 WskInspectComplete 函式。 如果要求在檢查完成之前中止,WSK 應用程式也會使用此結構來識別連入連接要求。

LocalAddressRemoteAddress 參數所指向的 SOCKADDR 結構,只有在呼叫 WskInspectEvent 事件回呼函式期間才有效。 如果 WSK 應用程式從 WskInspectEvent 事件回呼函式傳回 WskInspectPend,而且在檢查剩餘時間需要這些傳輸位址,則必須先將這些結構的內容複製到自己的 SOCKADDR 結構,再從 WskInspectEvent 事件回呼函式傳回。

WSK 子系統會在 IRQL <= DISPATCH_LEVEL 呼叫 WSK 應用程式的 WskInspectEvent 事件回呼函式。

WSK 應用程式的 WskInspectEvent 事件回呼函式不得等候 WSK 完成或事件回呼函式內容中的其他 WSK 要求完成。 回呼可以起始其他 WSK 要求(假設它不會花太多時間在DISPATCH_LEVEL),但即使在 IRQL = PASSIVE_LEVEL 呼叫回呼,也不得等待完成。

要求

要求 價值
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows作系統中使用。
目標平臺 窗戶
標頭 wsk.h (包括 Wsk.h)
IRQL <= DISPATCH_LEVEL

另請參閱

SOCKADDR

WSK_CLIENT_LISTEN_DISPATCH

WSK_INSPECT_ID

WskAbortEvent

WskAccept

WskAcceptEvent

WskCloseSocket

WskControlSocket

WskInspectComplete

WskSocket