イベント オブジェクト (Windows ソケット 2)

重複する I/O を導入するには、アプリケーションが送信要求と受信要求を後続の完了指示と明確に関連付けるメカニズムが必要です。 Windows Sockets 2 では、これは Windows イベントの後にモデル化されたイベント オブジェクトを使用して実現されます。 Windows Sockets イベント オブジェクトは、作成および終了、設定、クリア、待機およびポーリングが可能な非常に単純なコンストラクトです。 その主なユーティリティは、1 つ以上のイベント オブジェクトが設定されるまでブロックして待機するアプリケーションの機能です。

アプリケーションでは、WSACreateEvent を使用してイベント オブジェクト ハンドルを取得します。このハンドルは、重複したバージョンの送受信呼び出し (WSASend、WSASendToWSARecv、WSARecvFrom) に必要なパラメーターとして指定できます。 イベント オブジェクトは、最初に作成されたときにクリアされます。このイベント オブジェクトは、関連付けられた重複した I/O 操作が (正常にまたはエラーで) 完了したときにトランスポート プロバイダーによって設定されます。 WSACreateEvent によって作成された各イベント オブジェクトには、それを破棄するために一致する WSACloseEvent が必要です。

イベント オブジェクトは、1 つ以上のFD_XXXネットワーク イベントをイベント オブジェクトに関連付けるために 、WSAEventSelect でも使用されます。 これについては、「 イベント オブジェクトを使用した非同期通知」で説明されています。

32 ビット環境では、WSACreateEvent、WSACloseEventWSASetEventWSAResetEventWSAWaitForMultipleEvents などのイベント オブジェクト関連の関数は、同じ関数名を使用して、WSA プレフィックスを使用せずに、対応するネイティブ Windows 関数に直接マップされます。