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 コードを返します。

リターン コード 説明
STATUS_SUCCESS
以前に実行された検査操作が正常に再開されました。 IRP は成功状態で完了します。
STATUS_PENDING
WSK サブシステムは、検査操作を直ちに再開できませんでした。 WSK サブシステムは、受信接続要求の検査操作を再開した後、IRP を完了します。 検査操作を再開する状態は、IRP の IoStatus.Status フィールドに返されます。
STATUS_FILE_FORCED_CLOSED
ソケットは機能しなくなりました。 IRP は失敗状態で完了します。 WSK アプリケーションは、できるだけ早くソケットを閉じる には、WskCloseSocket 関数を呼び出す必要があります。
その他の状態コード
エラーが発生しました。 IRP は失敗状態で完了します。

注釈

WSK アプリケーションは WskInspectComplete 関数を呼び出して、アプリケーションの WskInspectEvent イベント コールバック関数が以前に WskInspectPend を返した受信接続要求の検査を完了します。

WSK アプリケーションは、条件付き受け入れモードが有効になっているリッスン ソケットでのみ WskInspectComplete 関数を呼び出すことができます。 WSK アプリケーションでは、 SO_CONDITIONAL_ACCEPT ソケット オプションを有効にすることで、リッスン しているソケットで条件付き受け入れモードを有効にすることができます。 受信接続を条件付きで受け入れる方法の詳細については、「受信Connectionsのリッスンと受け入れ」を参照してください。

WSK サブシステムは、アプリケーションの WskInspectEvent イベント コールバック関数を呼び出したときに、WSK_INSPECT_ID構造体へのポインターを WSK アプリケーションに渡しました。 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 関数を呼び出した場合、WSK アプリケーションが Action パラメーターで WskInspectAccept を指定した場合でも、接続は確立されません。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header wsk.h (Wsk.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

SO_CONDITIONAL_ACCEPT

WSK_INSPECT_ID

WSK_PROVIDER_LISTEN_DISPATCH

WSK_SOCKET

WskAbortEvent

WskAccept

WskAcceptEvent

WskInspectEvent