PFN_WSK_INSPECT_COMPLETE回呼函式 (wsk.h)
WskInspectComplete 函式會完成先前在已啟用條件式接受模式的接聽套接字上收到的傳入連線要求檢查。
語法
PFN_WSK_INSPECT_COMPLETE PfnWskInspectComplete;
NTSTATUS PfnWskInspectComplete(
[in] PWSK_SOCKET ListenSocket,
[in] PWSK_INSPECT_ID InspectID,
[in] WSK_INSPECT_ACTION Action,
[in, out] PIRP Irp
)
{...}
參數
[in] ListenSocket
WSK_SOCKET 結構的指標。 此指標會指定 WSK 應用程式收到正在檢查之連入連線要求的接聽套接字。
[in] InspectID
WSK_INSPECT_ID 結構的指標。 結構的內容會識別 WSK 應用程式正在檢查的特定連線要求。
[in] Action
值,指定 WSK 應用程式是否接受或拒絕傳入連線要求。 WSK 應用程式必須針對此參數指定 WskInspectAccept 或 WskInspectReject 。
[in, out] Irp
WSK 子系統用來異步完成繼續作業的呼叫端配置 IRP 指標。 如需搭配 WSK 函式使用 IRP 的詳細資訊,請參閱 搭配 Winsock 核心函式使用 IRP。
傳回值
WskInspectComplete 會傳回下列其中一個 NTSTATUS 代碼:
傳回碼 | Description |
---|---|
|
先前的畫筆檢查作業已成功繼續。 IRP 將會以成功狀態完成。 |
|
WSK 子系統無法立即繼續檢查作業。 WSK 子系統在繼續連入連線要求的檢查作業之後,將會完成 IRP。 繼續檢查作業的狀態將會在 IRP 的 IoStatus.Status 字段中傳回。 |
|
套接字已不再運作。 IRP 將會以失敗狀態完成。 WSK 應用程式必須呼叫 WskCloseSocket 函式,才能儘快關閉套接字。 |
|
發生錯誤。 IRP 將會以失敗狀態完成。 |
備註
WSK 應用程式會呼叫 WskInspectComplete 函式,以完成應用程式先前傳回 WskInspectPend 之 WskInspectEvent 事件回呼函式的傳入連線要求檢查。
WSK 應用程式只能在已啟用條件式接受模式的接聽套接字上呼叫 WskInspectComplete 函式。 WSK 應用程式可以啟用接聽套接字的條件式接受模式,方法是啟用 SO_CONDITIONAL_ACCEPT 套接字選項。 如需條件式接受連入連線的詳細資訊,請參閱接聽和接受傳入 Connections。
WSK 子系統在呼叫應用程式的 WskInspectEvent 事件回呼函式時,將指標傳遞給 WSK 應用程式WSK_INSPECT_ID結構。 WSK 應用程式從 WskInspectEvent 事件回呼函式傳回 WskInspectPend 之前,將該結構的內容複製到自己的WSK_INSPECT_ID結構。 當 WSk 應用程式呼叫 WskInspectComplete 函式時,WSK 應用程式會在 InspectID 參數中將指標傳遞至自己的WSK_INSPECT_ID結構。
如果 WSK 應用程式在 Action 參數中指定 WskInspectAccept,WSK 子系統會繼續建立套接字連線。 WSK 子系統會在啟用 WskAccept 事件回呼函式時完成 WSK 應用程式的呼叫,或呼叫 WSK 應用程式的 WskAcceptEvent 事件回呼函式,以將套接字傳回至 WSK 應用程式。 如果在套接字連線完全建立之前卸除傳入連線要求,WSK 子系統會呼叫 WSK 應用程式的 WskAbortEvent 事件回呼函式。
如果 WSK 應用程式在 Action 參數中指定 WskInspectReject,則會卸除連入連線要求,而且不會建立套接字連線。
如果在 WSK 應用程式呼叫 WskInspectComplete 函式之前,遠端系統卸載傳入連線要求,WSK 子系統會呼叫 WSK 應用程式的 WskAbortEvent 事件回呼函式。
如果 WSK 應用程式在已中止的連入連線要求上呼叫 WskInspectComplete 函式,即使動作參數中的 WSK 應用程式指定 WskInspectAccept,也不會建立連線。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
目標平台 | Universal |
標頭 | wsk.h (包含 Wsk.h) |
IRQL | <= DISPATCH_LEVEL |