Reglas para varias canalizaciones
Puede combinar [en], [out] y [in, out] pipe parameters in any combination in a single call, but you must process the pipe in a specific order, as shown in the following pseudocode example:
Nota
Esta característica ya no se admite en Windows Vista ni en plataformas posteriores.
- Obtenga los datos de cada canalización de entrada, empezando por el primer parámetro (situado más a la izquierda) [en] y, continuando en orden, purgando cada canalización antes de empezar a procesar la siguiente.
- Una vez que se haya procesado completamente cada canalización de entrada, envíe los datos de las canalizaciones de salida, empezando de nuevo por el primer parámetro [out] y continuando en orden, rellenando cada canalización antes de empezar a procesar el siguiente.
//in .IDL file:
void InOutUCharPipe( [in,out] UCHAR_PIPE *uchar_pipe_1,
[out] UCHAR_PIPE * uchar_pipe_2,
[in] UCHAR_PIPE uchar_pipe_3);
//remote procedure:
void InOutUCharPipe( UCHAR_PIPE *param1,
UCHAR_PIPE *param2,
UCHAR_PIPE param3)
{
while(!END_OF_PIPE1)
{
param1->pull (. . .);
. . .
};
while(!END_OF_PIPE3)
{
param3.pull (. . .);
. . .
};
while(!END_OF_PIPE1)
{
param1->push (. . .);
. . .
};
while(!END_OF_PIPE2)
{
param2->push(. . .);
. . .
};
} //end InOutUCharPipe