enumeración RIO_NOTIFICATION_COMPLETION_TYPE (mswsock.h)

La enumeración RIO_NOTIFICATION_COMPLETION_TYPE especifica el tipo de notificaciones de cola de finalización que se usarán con la función RIONotify al enviar o recibir datos mediante las extensiones de E/S registradas de Winsock.

Syntax

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

Constantes

 
RIO_EVENT_COMPLETION
Valor: 1
Un identificador de eventos se usa para indicar las notificaciones de la cola de finalización.

Se proporciona un identificador de evento como miembro EventNotify.EventHandle en la estructura de RIO_NOTIFICATION_COMPLETION que se pasa a la función RIOCreateCompletionQueue cuando se crea el RIO_CQ . La finalización de la función RIONotify para este RIO_CQ indicará el evento. El miembro Event.NotifyReset de la estructura RIO_NOTIFICATION_COMPLETION que se pasa a la función RIOCreateCompletionQueue cuando se crea el RIO_CQ indica si el evento debe restablecerse como parte de una llamada a la función RIONotify .
RIO_IOCP_COMPLETION
Valor: 2
Se usa un identificador de puerto de finalización de E/S para indicar las notificaciones de cola de finalización.

Se proporciona un identificador de puerto de finalización de E/S como miembro Iocp.IocpHandle en la estructura de RIO_NOTIFICATION_COMPLETION que se pasa a la función RIOCreateCompletionQueue cuando se crea el RIO_CQ . La finalización de la función RIONotify para este RIO_CQ pondrá en cola una entrada al puerto de finalización de E/S que se puede recuperar mediante la función GetQueuedCompletionStatus o GetQueuedCompletionStatusEx . La entrada en cola tendrá el valor de parámetro lpCompletionKey devuelto establecido en el valor especificado en el miembro Iocp.CompletionKey del RIO_NOTIFICATION_COMPLETION y el valor de parámetro lpOverlapped devuelto establecido en el valor especificado en el miembro Iocp.Superpuesto en RIO_NOTIFICATION_COMPLETION estructura. El miembro Iocp.Superpuesto en el RIO_NOTIFICATION_COMPLETION será un valor distinto de NULL.

Comentarios

La enumeración RIO_NOTIFICATION_COMPLETION_TYPE se usa con las extensiones de E/S registradas de Winsock para especificar el tipo de finalización de E/S que se usará con un RIO_CQ. Un valor de enumeración se establece en la estructura RIO_NOTIFICATION_COMPLETION pasada a la función RIOCreateCompletionQueue cuando se crea el RIO_CQ .

Al crear un RIO_CQ, la estructura de RIO_NOTIFICATION_COMPLETION determina cómo la aplicación recibirá notificaciones de cola de finalización. Si se proporciona la estructura RIO_NOTIFICATION_COMPLETION al crear la cola de finalización, la aplicación puede llamar a la función RIONotify para solicitar una notificación de cola de finalización. Normalmente, esta notificación se produce cuando la cola de finalización no está vacía. Esto puede ocurrir inmediatamente o cuando se inserta la siguiente entrada de finalización en la cola de finalización. Una vez que se emite una notificación de cola de finalización, la aplicación debe llamar a RIONotify para recibir otra notificación de cola de finalización.

Hay dos opciones disponibles para la notificación de cola de finalización.

  • Identificadores de eventos.
  • Puertos de finalización de E/S

Si el miembro Type de la estructura de RIO_NOTIFICATION_COMPLETION se establece en RIO_EVENT_COMPLETION, se usa un identificador de eventos para indicar las notificaciones de la cola de finalización. Se proporciona un identificador de evento como miembro EventNotify.EventHandle en la estructura de RIO_NOTIFICATION_COMPLETION pasada a la función RIOCreateCompletionQueue .

Si el miembro Type de la estructura de RIO_NOTIFICATION_COMPLETION se establece en RIO_IOCP_COMPLETION, se usa un puerto de finalización de E/S para indicar las notificaciones de la cola de finalización. Se proporciona un identificador de puerto de finalización de E/S como miembro Iocp.IocpHandle en la estructura de RIO_NOTIFICATION_COMPLETION pasada a la función RIOCreateCompletionQueue . La finalización de la función RIONotify para este RIO_CQ pondrá en cola una entrada al puerto de finalización de E/S que se puede recuperar mediante la función GetQueuedCompletionStatus o GetQueuedCompletionStatusEx .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Encabezado mswsock.h

Consulte también

RIOCreateCompletionQueue

RIONotify

RIO_CQ

RIO_NOTIFICATION_COMPLETION