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_DISPATCHWskAccept の
WskAcceptEvent の
WskCloseSocket の
WskConnect の
WskControlSocket の
WskDisconnect の
WskSocket の
WskSocketConnect の