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

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

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

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

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