Partager via


énumération RIO_NOTIFICATION_COMPLETION_TYPE (mswsock.h)

L’énumération RIO_NOTIFICATION_COMPLETION_TYPE spécifie le type de notifications de file d’attente d’achèvement à utiliser avec la fonction RIONotify lors de l’envoi ou de la réception de données à l’aide des extensions d’E/S inscrites 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
Valeur : 1
Un handle d’événement est utilisé pour signaler les notifications de file d’attente d’achèvement.

Un handle d’événement est fourni en tant que membre EventNotify.EventHandle dans la structure RIO_NOTIFICATION_COMPLETION passée à la fonction RIOCreateCompletionQueue lors de la création du RIO_CQ . L’achèvement de la fonction RIONotify pour cette RIO_CQ signale l’événement. Le membre Event.NotifyReset de la structure RIO_NOTIFICATION_COMPLETION passé à la fonction RIOCreateCompletionQueue lors de la création du RIO_CQ indique si l’événement doit être réinitialisé dans le cadre d’un appel à la fonction RIONotify .
RIO_IOCP_COMPLETION
Valeur : 2
Un handle de port d’achèvement d’E/S est utilisé pour signaler les notifications de file d’attente d’achèvement.

Un handle de port d’achèvement d’E/S est fourni en tant que membre Iocp.IocpHandle dans la structure RIO_NOTIFICATION_COMPLETION passée à la fonction RIOCreateCompletionQueue lors de la création du RIO_CQ . L’achèvement de la fonction RIONotify pour cette RIO_CQ met en file d’attente une entrée vers le port d’achèvement des E/S qui peut être récupérée à l’aide de la fonction GetQueuedCompletionStatus ouGetQueuedCompletionStatusEx . La valeur du paramètre lpCompletionKey renvoyée est définie sur la valeur spécifiée dans le membre Iocp.CompletionKey du RIO_NOTIFICATION_COMPLETION et la valeur du paramètre lpOverlapped retournée est définie sur la valeur spécifiée dans le membre Iocp.Chevauchement dansRIO_NOTIFICATION_COMPLETION structure. Le membre Iocp.Overlapped dans le RIO_NOTIFICATION_COMPLETION sera une valeur non NULL.

Remarques

L’énumération RIO_NOTIFICATION_COMPLETION_TYPE est utilisée avec les extensions d’E/S inscrites dans Winsock pour spécifier le type d’achèvement d’E/S à utiliser avec un RIO_CQ. Une valeur d’énumération est définie dans la structure RIO_NOTIFICATION_COMPLETION passée à la fonction RIOCreateCompletionQueue lors de la création du RIO_CQ .

Lors de la création d’un RIO_CQ, la structure RIO_NOTIFICATION_COMPLETION détermine la façon dont l’application recevra les notifications de file d’attente d’achèvement. Si la structure RIO_NOTIFICATION_COMPLETION est fournie lors de la création de la file d’attente d’achèvement, l’application peut appeler la fonction RIONotify pour demander une notification de file d’attente d’achèvement. Normalement, cette notification se produit lorsque la file d’attente d’achèvement n’est pas vide. Cela peut se produire immédiatement ou lorsque l’entrée d’achèvement suivante est insérée dans la file d’attente d’achèvement. Une fois qu’une notification de file d’attente d’achèvement est émise, l’application doit appeler RIONotify pour recevoir une autre notification de file d’attente d’achèvement.

Deux options sont disponibles pour la notification de file d’attente d’achèvement.

  • Handles d’événements.
  • Ports de saisie semi-automatique d’E/S

Si le membre Type de la structure RIO_NOTIFICATION_COMPLETION est défini sur RIO_EVENT_COMPLETION, un handle d’événement est utilisé pour signaler les notifications de file d’attente d’achèvement. Un handle d’événement est fourni en tant que membre EventNotify.EventHandle dans la structure RIO_NOTIFICATION_COMPLETION passée à la fonction RIOCreateCompletionQueue .

Si le membre Type de la structure RIO_NOTIFICATION_COMPLETION est défini sur RIO_IOCP_COMPLETION, un port d’achèvement d’E/S est utilisé pour signaler les notifications de file d’attente d’achèvement. Un handle de port d’achèvement d’E/S est fourni en tant que membre Iocp.IocpHandle dans la structure RIO_NOTIFICATION_COMPLETION passée à la fonction RIOCreateCompletionQueue . L’achèvement de la fonction RIONotify pour cette RIO_CQ met en file d’attente une entrée vers le port d’achèvement des E/S qui peut être récupérée à l’aide de la fonction GetQueuedCompletionStatus ouGetQueuedCompletionStatusEx .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
En-tête mswsock.h

Voir aussi

RIOCreateCompletionQueue

RIONotify

RIO_CQ

RIO_NOTIFICATION_COMPLETION