次の方法で共有


LPWSPENUMNETWORKEVENTS コールバック関数 (ws2spi.h)

LPWSPEnumNetworkEvents 関数は、指定されたソケットのネットワーク イベントの発生を報告します。

構文

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

int Lpwspenumnetworkevents(
  [in]  SOCKET s,
  [in]  WSAEVENT hEventObject,
  [out] LPWSANETWORKEVENTS lpNetworkEvents,
  [out] LPINT lpErrno
)
{...}

パラメーター

[in] s

ソケットを識別する記述子。

[in] hEventObject

リセットする関連イベント オブジェクトを識別するオプションのハンドル。

[out] lpNetworkEvents

発生したネットワーク イベントと関連するエラー コードのレコードが格納されている WSANETWORKEVENTS 構造体へのポインター。 WSANETWORKEVENTS 構造体は、次のテキストで定義されています。

[out] lpErrno

エラー コードへのポインター。

戻り値

操作が成功した場合、戻り値は 0 です。 それ以外の場合は、SOCKET_ERROR値が返され、 lpErrno で特定のエラー番号を使用できます。

エラー コード 意味
WSAENETDOWN
ネットワーク サブシステムが失敗しました。
WSAEINVAL
指定されたパラメーターのいずれかが無効であることを示します。
WSAEINPROGRESS
ブロックしている Windows ソケット呼び出しが進行中であるか、サービス プロバイダーがコールバック関数を処理しています。
WSAENOTSOCK
記述子はソケットではありません。

注釈

この関数は、この関数の最後の呼び出し以降に、指定されたソケットに対して発生したネットワーク イベントを報告するために使用されます。 これは、イベント オブジェクトを 1 つ以上のネットワーク イベントに関連付ける LPWSPEventSelect および LPWSPAsyncSelect と組み合わせて使用することを目的としています。 ネットワーク イベントの記録は、LPWSPEventSelect または LPWSPAsyncSelect が 0 以外の lNetworkEvents 引数で呼び出されると開始され、lNetworkEvents 引数がゼロに設定された LPWSPEventSelect または LPWSPAsyncSelect に対して別の対応する呼び出しが行われるまで有効です。

LPWSPEnumNetworkEvents は、LPWSPEventSelect によって指名されたネットワーク アクティビティとエラーのみを報告します。 LPWSPSelectLPWSPAsyncSelect の説明を参照して、これらの関数がネットワーク アクティビティとエラーを報告する方法を確認してください。

ネットワーク イベントのソケットの内部レコードは、 lpNetworkEvents によって参照される構造体にコピーされ、その後、内部ネットワーク イベント レコードがクリアされます。 hEventObject が null 以外の場合、指定されたイベント オブジェクトもリセットされます。 Windows ソケット プロバイダーは、ネットワーク イベント レコードをコピーし、それをクリアし、関連するイベント オブジェクトをリセットする操作がアトミックであることを保証します。これにより、指定されたネットワーク イベントが次に発生すると、イベント オブジェクトが設定されます。 この関数がSOCKET_ERRORを返す場合、関連付けられたイベント オブジェクトはリセットされず、ネットワーク イベントのレコードはクリアされません。

WSANETWORKEVENTS 構造体は、WSANETWORKEVENTS 参照ページで定義されています。

WSANETWORKEVENTS 構造体の lNetworkEvents メンバーは、FD_XXXネットワーク イベントのうち発生したイベントを示します。 iErrorCode 配列は、関連するエラー コードを格納するために使用され、lNetworkEvents 内のイベント ビットの位置に対応する配列インデックスが含まれます。 FD_READ_BITやFD_WRITE_BITなどの識別子を使用して、 iErrorCode 配列のインデックスを作成できます。

iErrorCode 配列の要素のみが、lNetworkEvents メンバーで設定されたビットに対応して設定されることに注意してください。 他のメンバーは変更されません (これは、新しいFD_ROUTING_INTERFACE_CHANGEおよびFD_ADDRESS_LIST_CHANGEイベントを認識していない Windows Socket 2 SPI クライアントとの下位互換性のために重要です)。

次のエラー コードは、それぞれのネットワーク イベントと共に返すことができます。

イベント: FD_CONNECT

エラー コード 意味
WSAEAFNOSUPPORT
指定されたファミリーのアドレスをこのソケットと共に使用することはできません。
WSAECONNREFUSED
接続の試行が強制的に拒否されました。
WSAENETUNREACH
現在このホストからネットワークには到達できません。
WSAENOBUFS
バッファーに空き領域がありません。 ソケットを接続できません。
WSAETIMEDOUT
接続を確立せずに接続試行がタイムアウトしました。

イベント: FD_CLOSE

エラー コード 意味
WSAENETDOWN
ネットワーク サブシステムが失敗しました。
WSAECONNRESET
リモート側で接続がリセットされました。
WSAECONNABORTED
タイムアウトまたはその他のエラーが原因で接続が終了しました。

イベント: FD_READ、FD_WRITE、FD_OOB、FD_ACCEPT、FD_QOS、FD_GROUP_QOS、FD_ADDRESS_LIST_CHANGE

エラー コード 意味
WSAENETDOWN
ネットワーク サブシステムが失敗しました。

イベント: FD_ROUTING_INTERFACE_CHANGE

エラー コード 意味
WSAENETUNREACH
指定した宛先に到達できなくなりました。
WSAENETDOWN
ネットワーク サブシステムが失敗しました。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header ws2spi.h

こちらもご覧ください

LPWSPEventSelect