RIO_NOTIFICATION_COMPLETION_TYPE
列挙型メンバー 2
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| RIO_EVENT_COMPLETION | 1 | 0x1 | 完了キュー通知の通知にイベントハンドルを使用します。 イベントハンドルは、RIO_CQ の作成時に RIOCreateCompletionQueue 関数へ渡す RIO_NOTIFICATION_COMPLETION 構造体の EventNotify.EventHandle メンバーとして指定します。この RIO_CQ に対する RIONotify 関数が完了すると、そのイベントがシグナル状態になります。 RIO_CQ の作成時に RIOCreateCompletionQueue 関数へ渡す RIO_NOTIFICATION_COMPLETION 構造体の Event.NotifyReset メンバーは、RIONotify 関数の呼び出しの一環としてイベントをリセットするかどうかを示します。 |
| RIO_IOCP_COMPLETION | 2 | 0x2 | 完了キュー通知の通知に I/O 完了ポートのハンドルを使用します。 I/O 完了ポートのハンドルは、RIO_CQ の作成時に RIOCreateCompletionQueue 関数へ渡す RIO_NOTIFICATION_COMPLETION 構造体の Iocp.IocpHandle メンバーとして指定します。この RIO_CQ に対する RIONotify 関数が完了すると、I/O 完了ポートにエントリがキューイングされます。このエントリは GetQueuedCompletionStatus 関数または GetQueuedCompletionStatusEx 関数で取得できます。 キューイングされたエントリでは、返される lpCompletionKey パラメーターの値に RIO_NOTIFICATION_COMPLETION の Iocp.CompletionKey メンバーで指定した値が設定され、返される lpOverlapped パラメーターの値に RIO_NOTIFICATION_COMPLETION 構造体の Iocp.Overlapped メンバーで指定した値が設定されます。 RIO_NOTIFICATION_COMPLETION の Iocp.Overlapped メンバーは NULL 以外の値になります。 |
公式ドキュメント
RIO_NOTIFICATION_COMPLETION_TYPE 列挙型は、Winsock 登録済み I/O 拡張機能を使用してデータを送受信する際に、RIONotify 関数で使用する完了キュー通知の種類を指定します。
解説(Remarks)
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_CQ に対する RIONotify 関数が完了すると、I/O 完了ポートにエントリがキューイングされます。このエントリは GetQueuedCompletionStatus 関数または GetQueuedCompletionStatusEx 関数で取得できます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum RIO_NOTIFICATION_COMPLETION_TYPE : int {
RIO_EVENT_COMPLETION = 1,
RIO_IOCP_COMPLETION = 2
} RIO_NOTIFICATION_COMPLETION_TYPE;public enum RIO_NOTIFICATION_COMPLETION_TYPE : int
{
RIO_EVENT_COMPLETION = 1,
RIO_IOCP_COMPLETION = 2,
}Public Enum RIO_NOTIFICATION_COMPLETION_TYPE As Integer
RIO_EVENT_COMPLETION = 1
RIO_IOCP_COMPLETION = 2
End Enumimport enum
class RIO_NOTIFICATION_COMPLETION_TYPE(enum.IntEnum):
RIO_EVENT_COMPLETION = 1
RIO_IOCP_COMPLETION = 2// RIO_NOTIFICATION_COMPLETION_TYPE
pub const RIO_EVENT_COMPLETION: i32 = 1;
pub const RIO_IOCP_COMPLETION: i32 = 2;// RIO_NOTIFICATION_COMPLETION_TYPE
const (
RIO_EVENT_COMPLETION int32 = 1
RIO_IOCP_COMPLETION int32 = 2
)const
RIO_EVENT_COMPLETION = 1;
RIO_IOCP_COMPLETION = 2;// RIO_NOTIFICATION_COMPLETION_TYPE
pub const RIO_EVENT_COMPLETION: i32 = 1;
pub const RIO_IOCP_COMPLETION: i32 = 2;const
RIO_EVENT_COMPLETION* = 1
RIO_IOCP_COMPLETION* = 2enum RIO_NOTIFICATION_COMPLETION_TYPE : int {
RIO_EVENT_COMPLETION = 1,
RIO_IOCP_COMPLETION = 2,
}#define global RIO_EVENT_COMPLETION 0x1
#define global RIO_IOCP_COMPLETION 0x2