Pipe (RPC)
Il costruttore del tipo di pipe è un meccanismo estremamente efficiente per passare 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 procedura remota ripetute.
Dopo che un client richiama una procedura 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
- lo stato della pipe
- definizione di pipe nei file IDL
- Client-Side'implementazione pipe
- Server-Side'implementazione pipe
- regole di per più pipe
- combinazione di parametri pipe e nonpipe
Per altre informazioni sulla sintassi e sulle restrizioni della pipe, vedere pipe nella guida di riferimento al linguaggio MIDL. Il programma di esempio PIPES negli esempi di Platform Software Development Kit (SDK)\rdirectory pc illustra come usare [in,out] pipe per trasferire i dati tra un client e un server.