RIO_NOTIFICATION_COMPLETION_TYPE列挙 (mswsock.h)

RIO_NOTIFICATION_COMPLETION_TYPE列挙は、Winsock 登録済み I/O 拡張機能を使用してデータを送受信するときに RIONotify 関数で使用する完了キュー通知の種類を指定します。

構文

typedef enum _RIO_NOTIFICATION_COMPLETION_TYPE {
  RIO_EVENT_COMPLETION = 1,
  RIO_IOCP_COMPLETION = 2
} RIO_NOTIFICATION_COMPLETION_TYPE, *PRIO_NOTIFICATION_COMPLETION_TYPE;

定数

 
RIO_EVENT_COMPLETION
値: 1
イベント ハンドルは、完了キュー通知を通知するために使用されます。

イベント ハンドルは、RIO_CQの作成時に RIOCreateCompletionQueue 関数に渡されるRIO_NOTIFICATION_COMPLETION構造体の EventNotify.EventHandle メンバーとして提供されます。 このRIO_CQRIONotify 関数が完了すると、イベントが通知されます。 RIO_CQの作成時に RIOCreateCompletionQueue 関数に渡されるRIO_NOTIFICATION_COMPLETION構造体の Event.NotifyReset メンバーは、RIONotify 関数の呼び出しの一部としてイベントをリセットするかどうかを示します。
RIO_IOCP_COMPLETION
値: 2
I/O 完了ポート ハンドルは、完了キュー通知を通知するために使用されます。

I/O 完了ポート ハンドルは、RIO_CQの作成時に RIOCreateCompletionQueue 関数に渡されるRIO_NOTIFICATION_COMPLETION構造体の Iocp.IocpHandle メンバーとして提供されます。 このRIO_CQRIONotify 関数が完了すると、GetQueuedCompletionStatus または GetQueuedCompletionStatusEx 関数を使用して取得できる I/O 完了ポートへのエントリがキューに入れられます。 キューに置かれたエントリには、返された lpCompletionKey パラメーター値が、RIO_NOTIFICATION_COMPLETIONIocp.CompletionKey メンバーで指定された値に設定され、返された lpOverlapped パラメーター値は、RIO_NOTIFICATION_COMPLETION構造体の Iocp.Overlapped メンバーで指定された値に設定されます。 RIO_NOTIFICATION_COMPLETIONIocp.Overlapped メンバーは NULL 以外の値になります。

注釈

RIO_NOTIFICATION_COMPLETION_TYPE列挙は、Winsock に登録されている I/O 拡張機能と共に使用され、RIO_CQで使用する I/O 入力候補の種類を指定します。 列挙値は、 RIO_CQ の作成時に RIOCreateCompletionQueue 関数に渡される RIO_NOTIFICATION_COMPLETION 構造体で設定されます。

RIO_CQを作成する場合、RIO_NOTIFICATION_COMPLETION構造体によって、アプリケーションが完了キュー通知を受け取る方法が決まります。 完了キューの作成時に RIO_NOTIFICATION_COMPLETION 構造が指定されている場合、アプリケーションは RIONotify 関数を呼び出して完了キュー通知を要求できます。 通常、この通知は、完了キューが空でない場合に発生します。 これは、すぐに、または次の完了エントリが完了キューに挿入されたときに発生する可能性があります。 完了キュー通知が発行されたら、アプリケーションは別の完了キュー通知を受信するために RIONotify を呼び出す必要があります。

完了キュー通知には、2 つのオプションを使用できます。

  • イベント ハンドル。
  • I/O 完了ポート

RIO_NOTIFICATION_COMPLETION構造体の Type メンバーがRIO_EVENT_COMPLETIONに設定されている場合、イベント ハンドルを使用して完了キュー通知が通知されます。 イベント ハンドルは、RIOCreateCompletionQueue 関数に渡されるRIO_NOTIFICATION_COMPLETION構造体の EventNotify.EventHandle メンバーとして提供されます。

RIO_NOTIFICATION_COMPLETION構造体の Type メンバーがRIO_IOCP_COMPLETIONに設定されている場合、I/O 完了ポートを使用して完了キュー通知が通知されます。 I/O 完了ポート ハンドルは、RIOCreateCompletionQueue 関数に渡されるRIO_NOTIFICATION_COMPLETION構造体の Iocp.IocpHandle メンバーとして提供されます。 このRIO_CQRIONotify 関数が完了すると、GetQueuedCompletionStatus または GetQueuedCompletionStatusEx 関数を使用して取得できる I/O 完了ポートへのエントリがキューに入れられます。

要件

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

こちらもご覧ください

RIOCreateCompletionQueue

RIONotify

RIO_CQ

RIO_NOTIFICATION_COMPLETION