次の方法で共有


PFN_WSK_DISCONNECT_EVENT コールバック関数 (wsk.h)

WskDisconnectEvent イベント コールバック関数は、接続指向ソケット上の接続がリモート アプリケーションによって切断されたことを WSK アプリケーションに通知します。

構文

PFN_WSK_DISCONNECT_EVENT PfnWskDisconnectEvent;

NTSTATUS PfnWskDisconnectEvent(
  [in, optional] PVOID SocketContext,
  [in]           ULONG Flags
)
{...}

パラメーター

[in, optional] SocketContext

切断された接続指向ソケットのソケット コンテキストへのポインター。 WSK アプリケーションは、次のいずれかの方法で WSK サブシステムへのこのポインターを提供しました。

  • ソケットを作成するために、WskSocket 関数を呼び出しました。
  • ソケットを作成するために、WskSocketConnect 関数を呼び出しました。
  • ソケットを受信接続として受け入れるために、WskAccept 関数を呼び出しました。
  • その WskAcceptEvent イベント コールバック関数は、ソケットを受信接続として受け入れるために呼び出されました。

[in] Flags

次のフラグの組み合わせのビットごとの OR を含む ULONG 値。

WSK_FLAG_ABORTIVE

リモート アプリケーションは、ソケットの中止的な切断を実行しました。 このフラグが設定されていない場合、リモート アプリケーションはソケットの正常な切断を実行しました。

WSK_FLAG_AT_DISPATCH_LEVEL

WSK サブシステムは、IRQL = DISPATCH_LEVEL でイベント コールバック関数 WskDisconnectEvent を呼び出しました。 このフラグが設定されていない場合、WSK サブシステムは、IRQL <= DISPATCH_LEVELでイベント コールバック関数 WskDisconnectEvent を呼び出している可能性があります。

戻り値

WSK アプリケーションの WskDisconnectEvent イベント コールバック関数は、常にSTATUS_SUCCESSを返す必要があります。

備考

WSK サブシステムは、接続指向ソケットがリモート アプリケーションによって切断された場合に、イベント コールバック関数が以前に SO_WSK_EVENT_CALLBACK ソケット オプションで有効になっていた場合にのみ、WSK アプリケーションの WskDisconnectEvent イベント コールバック関数を呼び出します。 ソケットのイベント コールバック関数の有効化の詳細については、「イベント コールバック関数の有効化と無効化」を参照してください。

リモート アプリケーションがソケットの正常な切断を実行した場合、ソケットからそれ以上のデータは受信されません。 ただし、WSK アプリケーションは、ソケットがリモート アプリケーションによって完全に閉じられるか、WSK アプリケーションが WskDisconnect 関数またはソケット上の wskCloseSocket 関数 呼び出すまで、ソケットにデータを送信できます。

リモート アプリケーションがソケットの中止的な切断を実行した場合、ソケットからそれ以上のデータは受信されません。さらにデータをソケットに送信することはできません。

WSK サブシステムは、WSK アプリケーションの WskDisconnectEvent イベント コールバック関数を IRQL <= DISPATCH_LEVELで呼び出します。

WSK アプリケーションの WskDisconnectEvent イベント コールバック関数は、WSK 完了関数またはイベント コールバック関数のコンテキストで他の WSK 要求の完了を待つ必要はありません。 コールバックは他の WSK 要求を開始できますが (DISPATCH_LEVELで時間がかかりすぎないことを前提とします)、IRQL = PASSIVE_LEVEL でコールバックが呼び出された場合でも、その完了を待つ必要はありません。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム ウィンドウズ
ヘッダー wsk.h (Wsk.h を含む)
IRQL <= DISPATCH_LEVEL

関連項目

WSK_CLIENT_CONNECTION_DISPATCH

WskAccept

WskAcceptEvent

WskCloseSocket

WskConnect

WskControlSocket

WskDisconnect

WskSocket

WskSocketConnect