Compartilhar via


enumeração RIO_NOTIFICATION_COMPLETION_TYPE (mswsock.h)

A enumeração RIO_NOTIFICATION_COMPLETION_TYPE especifica o tipo de notificações de fila de conclusão a serem usadas com a função RIONotify ao enviar ou receber dados usando as extensões de E/S registradas do 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
Um identificador de evento é usado para sinalizar notificações de fila de conclusão.

Um identificador de evento é fornecido como o membro EventNotify.EventHandle na estrutura RIO_NOTIFICATION_COMPLETION passada para a função RIOCreateCompletionQueue quando o RIO_CQ é criado. A conclusão da função RIONotify para esse RIO_CQ sinalizará o evento. O membro Event.NotifyReset na estrutura RIO_NOTIFICATION_COMPLETION passada para a função RIOCreateCompletionQueue quando o RIO_CQ é criado indica se o evento deve ou não ser redefinido como parte de uma chamada para a função RIONotify .
RIO_IOCP_COMPLETION
Valor: 2
Um identificador de porta de conclusão de E/S é usado para sinalizar notificações de fila de conclusão.

Um identificador de porta de conclusão de E/S é fornecido como membro Iocp.IocpHandle na estrutura RIO_NOTIFICATION_COMPLETION passada para a função RIOCreateCompletionQueue quando o RIO_CQ é criado. A conclusão da função RIONotify para esse RIO_CQ enfileirará uma entrada para a porta de conclusão de E/S que pode ser recuperada usando a função GetQueuedCompletionStatus ou GetQueuedCompletionStatusEx . A entrada enfileirada terá o valor do parâmetro lpCompletionKey retornado definido como o valor especificado no membro Iocp.CompletionKey do RIO_NOTIFICATION_COMPLETION e o valor de parâmetro lpOverlapped retornado definido como o valor especificado no membro Iocp.Overlapped na estrutura RIO_NOTIFICATION_COMPLETION . O membro Iocp.Overlapped no RIO_NOTIFICATION_COMPLETION será um valor não NULL.

Comentários

A enumeração RIO_NOTIFICATION_COMPLETION_TYPE é usada com as extensões de E/S registradas do Winsock para especificar o tipo de conclusão de E/S a ser usado com um RIO_CQ. Um valor de enumeração é definido na estrutura RIO_NOTIFICATION_COMPLETION passada para a função RIOCreateCompletionQueue quando o RIO_CQ é criado.

Ao criar um RIO_CQ, a estrutura RIO_NOTIFICATION_COMPLETION determina como o aplicativo receberá notificações de fila de conclusão. Se a estrutura RIO_NOTIFICATION_COMPLETION for fornecida ao criar a fila de conclusão, o aplicativo poderá chamar a função RIONotify para solicitar uma notificação de fila de conclusão. Normalmente, essa notificação ocorre quando a fila de conclusão não está vazia. Isso pode acontecer imediatamente ou quando a próxima entrada de conclusão é inserida na fila de conclusão. Depois que uma notificação de fila de conclusão for emitida, o aplicativo deverá chamar RIONotify para receber outra notificação de fila de conclusão.

Duas opções estão disponíveis para notificação de fila de conclusão.

  • Identificadores de evento.
  • Portas de conclusão de E/S

Se o membro Type da estrutura RIO_NOTIFICATION_COMPLETION estiver definido como RIO_EVENT_COMPLETION, um identificador de evento será usado para sinalizar notificações de fila de conclusão. Um identificador de evento é fornecido como o membro EventNotify.EventHandle na estrutura RIO_NOTIFICATION_COMPLETION passada para a função RIOCreateCompletionQueue .

Se o membro Type da estrutura RIO_NOTIFICATION_COMPLETION estiver definido como RIO_IOCP_COMPLETION, uma porta de conclusão de E/S será usada para sinalizar notificações de fila de conclusão. Um identificador de porta de conclusão de E/S é fornecido como membro Iocp.IocpHandle na estrutura RIO_NOTIFICATION_COMPLETION passada para a função RIOCreateCompletionQueue . A conclusão da função RIONotify para esse RIO_CQ enfileirará uma entrada para a porta de conclusão de E/S que pode ser recuperada usando a função GetQueuedCompletionStatus ou GetQueuedCompletionStatusEx .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Cabeçalho mswsock.h

Confira também

RIOCreateCompletionQueue

RIONotify

RIO_CQ

RIO_NOTIFICATION_COMPLETION