Megosztás a következőn keresztül:


Több csőre vonatkozó szabályok

A [in], [out], és a [in, out] csőparamétereket egyetlen hívás bármely kombinációjában kombinálhatja, de a csöveket egy meghatározott sorrendben kell feldolgoznia, ahogyan az alábbi pszeudokód-példában látható:

Jegyzet

Ez a funkció már nem támogatott Windows Vista és újabb platformokon.

 

  • Szerezze be az adatokat minden bemeneti csőből, kezdve az első (bal szélső) [] paraméterrel, és folytassa a sorrendet, ürítse le az egyes csövet, mielőtt elkezdené feldolgozni a következőt.
  • Miután minden bemeneti cső teljesen fel lett dolgozva, küldje el a kimeneti csövek adatait az első [ki] paraméterrel kezdve, és folytassa a sorrendet, töltse ki az egyes csöveket, mielőtt elkezdené feldolgozni a következőt.
//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