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 完成端口句柄用于向完成队列通知发出信号。

创建RIO_CQ时,I/O 完成端口句柄作为传递到 RIOCreateCompletionQueue 函数的 RIO_NOTIFICATION_COMPLETION 结构中的 Iocp.IocpHandle 成员提供。RIO_CQ的 RIONotify 函数完成会将 I/O 完成端口的条目排入队列,可以使用 GetQueuedCompletionStatusGetQueuedCompletionStatusEx 函数检索该条目。 排队条目会将返回的 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 扩展一起使用,以指定要用于RIO_CQ的 I/O 完成类型。 创建 RIO_CQ 时,在传递给 RIOCreateCompletionQueue 函数的 RIO_NOTIFICATION_COMPLETION 结构中设置 枚举 值。

创建 RIO_CQ时, RIO_NOTIFICATION_COMPLETION 结构确定应用程序如何接收完成队列通知。 如果在创建完成队列时提供了 RIO_NOTIFICATION_COMPLETION 结构,应用程序可能会调用 RIONotify 函数来请求完成队列通知。 通常,当完成队列不为空时,会发生此通知。 这可能会立即发生,或者在将下一个完成项插入完成队列时发生。 发出完成队列通知后,应用程序必须调用 RIONotify 才能接收另一个完成队列通知。

有两个选项可用于完成队列通知。

  • 事件句柄。
  • 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 完成端口的条目排入队列,可以使用 GetQueuedCompletionStatusGetQueuedCompletionStatusEx 函数检索该条目。

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
标头 mswsock.h

另请参阅

RIOCreateCompletionQueue

RIONotify

RIO_CQ

RIO_NOTIFICATION_COMPLETION