Pipe (RPC)
Il costruttore del tipo di pipe è un meccanismo estremamente efficiente per il passaggio di grandi quantità di dati o qualsiasi quantità di dati non tutti disponibili in memoria contemporaneamente. Usando una pipe, il runtime RPC gestisce il trasferimento effettivo dei dati, eliminando il sovraccarico associato a chiamate di routine remote ripetute.
Dopo che un client richiama una routine remota con un parametro pipe, il client e il server immettono cicli per trasferire i dati. I dati possono essere prodotti nel client o nel server. In entrambi i casi, la quantità di dati (in byte) non deve essere nota in anticipo. I dati possono essere prodotti o utilizzati in modo incrementale. Durante il ciclo di trasferimento dei dati, il server chiama routine stub che caricano o scaricano un buffer di dati. Il client chiama le procedure definite dal programmatore per allocare buffer, caricare i dati in e scaricare i dati dai buffer.
In questa sezione viene fornita una panoramica dell'uso delle pipe per le chiamate di procedura remota. Presenta la panoramica negli argomenti seguenti:
- Terminologia di pipe essenziale
- Stato della pipe
- Definizione di pipe nei file IDL
- Implementazione della pipe lato client
- Implementazione della pipe lato server
- Regole per più pipe
- Combinazione di parametri pipe e nonpipe
Per altre informazioni sulla sintassi della pipe e sulle restrizioni, vedere pipe nella guida di riferimento al linguaggio MIDL. Il programma di esempio PIPES nella directory sdk (Platform Software Development Kit) illustra come usare le pipe [in,out] per trasferire i dati tra un client e un server.