Condividi tramite


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.

Commenti

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.

Requisiti

Requisito Valore
Client minimo supportato
Windows 8 [solo app desktop]
Server minimo supportato
Windows Server 2012 [solo app desktop]
Intestazione
Mswsockdef.h (include Mswsock.h)

Vedi anche

RIOCreateRequestQueue

RIOReceive

RIOReceiveEx

RIOResizeRequestQueue

RIOSend

RIOSendEx

WSASocket