Dela via


Regler för flera rör

Du kan kombinera [i], [ut], och [i, ut] rörparametrar i valfri kombination i ett enda anrop, men du måste bearbeta rören i en viss ordning, vilket visas i följande pseudokodexempel:

Not

Den här funktionen stöds inte längre i Windows Vista och senare plattformar.

 

  • Hämta data från varje indatapipa, från och med den första (längst till vänster) [i parametern] och fortsätt i ordning och töm varje rör innan du börjar bearbeta nästa.
  • När varje indatarör har bearbetats helt skickar du data för utdatarören, och börjar igen med den första parametern [ut] och fortsätter i ordning och fyller varje rör innan du börjar bearbeta nästa.
//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