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 程式代碼:
傳回碼 | 描述 |
---|---|
|
先前的畫筆檢查作業已成功繼續。 IRP 將會以成功狀態完成。 |
|
WSK 子系統無法立即繼續檢查作業。 WSK 子系統在繼續傳入連線要求的檢查作業之後,將會完成 IRP。 恢復檢查作業的狀態將會在 IRP 的 [IoStatus.Status] 字段中傳回。 |
|
套接字已不再運作。 IRP 將會以失敗狀態完成。 WSK 應用程式必須呼叫 WskCloseSocket 函式,以儘快關閉套接字。 |
|
發生錯誤。 IRP 將會以失敗狀態完成。 |
言論
WSK 應用程式會呼叫 WskInspectComplete 函式,以完成應用程式的 WskInspectEvent 事件回呼函式先前傳回 WskInspectPend的連入連線要求檢查。
WSK 應用程式只能在已啟用條件式接受模式的接聽套接字上呼叫 WskInspectComplete 函式。 WSK 應用程式可以藉由啟用 SO_CONDITIONAL_ACCEPT 套接字選項,在接聽套接字上啟用條件式接受模式。 如需有條件地接受連入連線的詳細資訊,請參閱 接聽和接受傳入連線。
WSK 子系統在呼叫應用程式的 WskInspectEvent 事件回呼函式時,將指標傳遞給 WSK 應用程式 WSK_INSPECT_ID 結構。 WSK 應用程式會先從 WskInspectEvent 事件回呼函式傳回 WskInspectPend,再將該結構的內容複製到自己的WSK_INSPECT_ID結構。 WSK 應用程式會在呼叫 WskInspectComplete 函式時,將指標傳遞至 InspectID 參數中自己的WSK_INSPECT_ID結構。
如果 WSK 應用程式在 Action 參數中指定 WskInspectAccept,WSK 子系統將繼續建立套接字連線。 WSK 子系統會藉由完成 WSK 應用程式對 WskAccept 函式的呼叫,或呼叫 WSK 應用程式的 WskAcceptEvent 事件回呼函式,以將套接字傳回至 WSK 應用程式。 如果在完全建立套接字連線之前卸除連入連線要求,WSK 子系統會呼叫 WSK 應用程式的 WskAbortEvent 事件回呼函式。
如果 WSK 應用程式在 Action 參數中指定 WskInspectReject,則會卸除連入連線要求,而且不會建立套接字連線。
如果在 WSK 應用程式呼叫 WskInspectComplete 函式之前,遠端系統捨棄連入連線要求,WSK 子系統會呼叫 WSK 應用程式的 WskAbortEvent 事件回呼函式。
如果 WSK 應用程式在已中止的連入連線要求上呼叫 WskInspectComplete 函式,即使 Action 參數中指定的 WSK 應用程式 WskInspectAccept,也不會建立連線。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 普遍 |
標頭 | wsk.h (包括 Wsk.h) |
IRQL | <= DISPATCH_LEVEL |