SOCK_NOTIFY_REGISTRATION structure (winsock2.h)
Représente les informations fournies à la fonction ProcessSocketNotifications .
Pour plus d’informations et des exemples de code, consultez Notifications d’état du socket Winsock.
Syntaxe
typedef struct SOCK_NOTIFY_REGISTRATION {
SOCKET socket;
PVOID completionKey;
UINT16 eventFilter;
UINT8 operation;
UINT8 triggerFlags;
DWORD registrationResult;
} SOCK_NOTIFY_REGISTRATION;
Membres
socket
Type : SOCKET
Handle vers un socket Winsock ouvert par l’une des fonctions WSASocket, socket, WSAAccept, accept ou WSADuplicateSocket . Seuls les sockets de fournisseur Microsoft Winsock sont pris en charge.
completionKey
Type : PVOID
Valeur à utiliser dans le paramètre dwCompletionKey de la fonction PostQueuedCompletionStatus lorsque des notifications sont envoyées pour le compte du socket. Ce paramètre est utilisé lors de la création de l’inscription. Pour modifier la clé d’achèvement, supprimez l’inscription et réinscrivez-la.
eventFilter
Type : UINT16
Ensemble d’indicateurs indiquant les notifications demandées. Il doit s’agir d’une ou plusieurs des valeurs suivantes (définies dans WinSock2.h
).
SOCK_NOTIFY_REGISTER_EVENT_NONE. Les notifications ne doivent pas être émises.
SOCK_NOTIFY_REGISTER_EVENT_IN. Une notification doit être émise lorsque les données peuvent être lues sans blocage.
SOCK_NOTIFY_REGISTER_EVENT_OUT. Une notification doit être émise lorsque des données peuvent être écrites sans blocage.
SOCK_NOTIFY_REGISTER_EVENT_HANGUP. Une notification doit être émise lorsqu’une connexion orientée flux a été déconnectée ou abandonnée.
SOCK_NOTIFY_REGISTER_EVENTS_ALL. A la valeur (SOCK_NOTIFY_REGISTER_EVENT_IN | SOCK_NOTIFY_REGISTER_EVENT_OUT | SOCK_NOTIFY_REGISTER_EVENT_HANGUP)
.
operation
Type : UINT8
Indique l’opération à effectuer sur une inscription. Au maximum une opération peut être effectuée à la fois. Ces valeurs sont définies dans WinSock2.h
.
SOCK_NOTIFY_OP_NONE. Aucune opération d’inscription ne doit avoir lieu. Utilisez cette option si votre application appelle ProcessSocketNotifications et qu’elle souhaite uniquement recevoir des notifications. SOCK_NOTIFY_OP_ENABLE. Active l’inscription. Les notifications ne doivent pas être réactives tant que la notification SOCK_NOTIFY_EVENT_DISABLE n’a pas été reçue. SOCK_NOTIFY_OP_DISABLE. Désactive l’inscription, mais ne détruit pas les structures de données sous-jacentes. Notez que cela ne supprime pas l’inscription, mais simplement la mise en file d’attente des nouvelles notifications. Les notifications qui ont déjà été mises en file d’attente peuvent toujours être remises jusqu’à la réception de l’événement SOCK_NOTIFY_EVENT_DISABLE . SOCK_NOTIFY_OP_REMOVE. Supprime une notification précédemment inscrite. Les notifications activées et désactivées peuvent être supprimées. La notification SOCK_NOTIFY_EVENT_REMOVE est émise, avec la garantie qu’aucune autre notification ne sera émise par la suite pour cette clé d’achèvement, sauf si elle est réinscrite.
triggerFlags
Type : UINT8
Ensemble d’indicateurs indiquant le comportement du déclencheur (défini dans WinSock2.h
).
SOCK_NOTIFY_TRIGGER_ONESHOT. L’inscription sera désactivée (non supprimée) à la remise de la notification suivante. SOCK_NOTIFY_TRIGGER_PERSISTENT. L’inscription reste active jusqu’à ce qu’elle soit explicitement désactivée ou supprimée. SOCK_NOTIFY_TRIGGER_LEVEL. L’inscription est destinée aux notifications déclenchées par un niveau. Non compatible avec les déclencheurs en périphérie. L’un des déclencheurs de bord ou de niveau doit être fourni. SOCK_NOTIFY_TRIGGER_EDGE. L’inscription est destinée aux notifications déclenchées en périphérie. Non compatible avec le déclencheur de niveau. L’un des déclencheurs de bord ou de niveau doit être fourni.
Les notifications sont fournies uniquement lorsque l’inscription est activée. Les notifications ne sont pas mises en file d’attente tant que l’inscription est désactivée. À mesure que les notifications sont mises en file d’attente pour un socket donné, elles sont fusionnées en une seule notification. Par conséquent, plusieurs événements peuvent être décrits par un seul masque d’événement pour le socket.
Étant donné que l’inscription est activée, des notifications déclenchées au niveau sont fournies chaque fois que les conditions souhaitées se maintiennent.
Étant donné que l’inscription est activée, des notifications déclenchées par edge sont fournies chaque fois qu’une condition passe de non-conservation à conservation. La condition doit changer pendant que l’inscription est activée pour qu’une notification soit mise en file d’attente. Par conséquent, après l’inscription, la mémoire tampon de réception du socket doit être complètement vidée pour garantir la réception d’une notification.
registrationResult
Type : DWORD
Après un appel réussi à ProcessSocketNotifications, registrationResult contient un code indiquant la réussite ou l’échec de l’inscription. La valeur ERROR_SUCCESS indique que l’inscription a réussi.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | winsock2.h |