Condividi tramite


SOCK_NOTIFY_REGISTRATION struttura (winsock2.h)

Rappresenta le informazioni fornite alla funzione ProcessSocketNotifications .

Per altre informazioni ed esempi di codice, vedere Notifiche sullo stato del socket Winsock.

Sintassi

typedef struct SOCK_NOTIFY_REGISTRATION {
  SOCKET socket;
  PVOID  completionKey;
  UINT16 eventFilter;
  UINT8  operation;
  UINT8  triggerFlags;
  DWORD  registrationResult;
} SOCK_NOTIFY_REGISTRATION;

Members

socket

Tipo: SOCKET

Handle a un socket Winsock aperto da una qualsiasi delle funzioni WSASocket, socket, WSAAccept, accept o WSADuplicateSocket . Sono supportati solo i socket del provider Microsoft Winsock .

completionKey

Tipo: PVOID

Valore da usare nel parametro dwCompletionKey della funzione PostQueuedCompletionStatus quando le notifiche vengono inviate per conto del socket. Questo parametro viene usato al momento della creazione della registrazione. Per modificare la chiave di completamento, rimuovere la registrazione e registrarla nuovamente.

eventFilter

Tipo: UINT16

Set di flag che indicano le notifiche richieste. Questo deve essere uno o più dei valori seguenti (definiti in WinSock2.h).

SOCK_NOTIFY_REGISTER_EVENT_NONE. Le notifiche non devono essere rilasciate. SOCK_NOTIFY_REGISTER_EVENT_IN. Una notifica deve essere inviata quando i dati possono essere letti senza bloccare. SOCK_NOTIFY_REGISTER_EVENT_OUT. Una notifica deve essere inviata quando i dati possono essere scritti senza bloccare. SOCK_NOTIFY_REGISTER_EVENT_HANGUP. Una notifica deve essere inviata quando una connessione orientata al flusso è stata disconnessa o interrotta. SOCK_NOTIFY_REGISTER_EVENTS_ALL. Ha il valore (SOCK_NOTIFY_REGISTER_EVENT_IN | SOCK_NOTIFY_REGISTER_EVENT_OUT | SOCK_NOTIFY_REGISTER_EVENT_HANGUP).

operation

Tipo: UINT8

Indica l'operazione da eseguire su una registrazione. Al massimo un'operazione può essere eseguita alla volta. Questi valori sono definiti in WinSock2.h.

SOCK_NOTIFY_OP_NONE. Nessuna operazione di registrazione deve essere eseguita. Usare questa opzione se l'applicazione chiama ProcessSocketNotifications ed è interessato solo alla ricezione di notifiche. SOCK_NOTIFY_OP_ENABLE. Abilita la registrazione. Le notifiche non devono essere riattivate finché non viene ricevuta la notifica di SOCK_NOTIFY_EVENT_DISABLE . SOCK_NOTIFY_OP_DISABLE. Disabilita la registrazione, ma non elimina le strutture di dati sottostanti. Si noti che questa operazione non rimuove la registrazione, elimina semplicemente l'accodamento delle nuove notifiche. Le notifiche già accodate potrebbero essere recapitate fino alla ricezione dell'evento SOCK_NOTIFY_EVENT_DISABLE . SOCK_NOTIFY_OP_REMOVE. Rimuove una notifica registrata in precedenza. Le notifiche abilitate e disabilitate possono essere rimosse. La notifica di SOCK_NOTIFY_EVENT_REMOVE viene emessa, con la garanzia che non verranno rilasciate più notifiche in seguito per tale chiave di completamento, a meno che non venga nuovamente registrata.

triggerFlags

Tipo: UINT8

Set di flag che indicano il comportamento del trigger (definito in WinSock2.h).

SOCK_NOTIFY_TRIGGER_ONESHOT. La registrazione verrà disabilitata (non rimossa) al recapito della notifica successiva. SOCK_NOTIFY_TRIGGER_PERSISTENT. La registrazione rimarrà attiva fino a quando non viene disabilitata o rimossa in modo esplicito. SOCK_NOTIFY_TRIGGER_LEVEL. La registrazione è per le notifiche attivate a livello. Non compatibile con il trigger perimetrale. È necessario specificare uno dei trigger a livello o perimetrale. SOCK_NOTIFY_TRIGGER_EDGE. La registrazione è per le notifiche attivate da edge. Non compatibile con il trigger a livello. È necessario specificare uno dei trigger a livello o perimetrale.

Le notifiche vengono fornite solo quando la registrazione è abilitata. Le notifiche non vengono accodate mentre la registrazione è disabilitata. Poiché le notifiche vengono accodate per un determinato socket, vengono raggruppate in una singola notifica. Pertanto, più eventi possono essere descritti da una singola maschera evento per il socket.

Dato che la registrazione è abilitata, le notifiche attivate a livello vengono fornite ogni volta che vengono visualizzate le condizioni desiderate.

Dato che la registrazione è abilitata, le notifiche attivate dal bordo vengono fornite ogni volta che una condizione cambia da non tenere in possesso. La condizione deve cambiare mentre la registrazione è abilitata per la coda di una notifica. Di conseguenza, dopo la registrazione, il buffer di ricezione del socket deve essere completamente svuotato per garantire che venga ricevuta una notifica.

registrationResult

Tipo: DWORD

Dopo una chiamata riuscita a ProcessSocketNotifications, registrationResult contiene un codice che indica l'esito positivo o negativo della registrazione. Un valore di ERROR_SUCCESS indica che la registrazione è riuscita.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Intestazione winsock2.h

Vedi anche