RIO_RQ
Il typedef RIO_RQ specifica un descrittore di socket usato dalle richieste di invio e ricezione con le estensioni di I/O registrate da Winsock.
typedef struct RIO_RQ_t* RIO_RQ, **PRIO_RQ;
-
RIO_RQ
-
Tipo di dati che specifica un descrittore socket utilizzato dalle richieste di invio e ricezione.
Le estensioni di I/O registrate winsock operano principalmente su un oggetto RIO_RQ anziché su un socket. Un'applicazione ottiene un RIO_RQ per un socket esistente usando la funzione RIOCreateRequestQueue . Il socket di input deve essere stato creato chiamando la funzione WSASocket con il flag WSA_FLAG_RIO impostato nel parametro dwFlags .
Dopo aver ottenuto un oggetto RIO_RQ , il descrittore socket sottostante rimane valido. Un'applicazione può continuare a usare il socket sottostante per impostare e impostare le opzioni del socket di query, emettere IOCTL e infine chiudere il socket.
Nota
Ai fini dell'efficienza, l'accesso alle code di completamento (struct RIO_CQ ) e alle code delle richieste (RIO_RQ struct) non sono protetti dalle primitive di sincronizzazione. Se è necessario accedere a una coda di completamento o richiesta da più thread, l'accesso deve essere coordinato da una sezione critica, un blocco di scrittura di lettura sottile o un meccanismo simile. Questo blocco non è necessario per l'accesso da un singolo thread. I thread diversi possono accedere a code di completamento/richieste separate senza blocchi. La necessità di sincronizzazione si verifica solo quando più thread tentano di accedere alla stessa coda. La sincronizzazione è necessaria anche se più thread invia e riceve sullo stesso socket perché le operazioni di invio e ricezione usano la coda di richieste del socket.
Il typedef RIO_RQ è definito nel file di intestazione Mswsockdef.h , incluso automaticamente nel file di intestazione Mswsock.h . Il file di intestazione Mswsockdef.h non deve mai essere usato direttamente.
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 8 [solo app desktop] |
Server minimo supportato |
Windows Server 2012 [solo app desktop] |
Intestazione |
|