{
ULONGIndex;
PKSPROCESSPIN CurPin, Pin;
BOOLEAN PendingFrames = FALSE;
if (ProcessPinsIndex->Count)
{
/* check if there are outstanding frames */for(Index = 1; Index < ProcessPinsIndex->Count; Index++)
{
/* get current pin */
CurPin = ProcessPinsIndex->Pins[Index];
if (CurPin->BytesAvailable && CurPin->Pin->DeviceState == KSSTATE_RUN)
{
/* pin has pending frames * to keep all pins synchronized, every pin has to wait untill each chained pin has send its frames downwards */
PendingFrames = TRUE;
}
}
}
if (!PendingFrames && ProcessPinsIndex->Count)
{
/* get first pin */
Pin = ProcessPinsIndex->Pins[0];
/* check if there is new data available */if (Pin->BytesAvailable)
{
for(Index = 1; Index < ProcessPinsIndex->Count; Index++)
{
/* get current pin */
CurPin = ProcessPinsIndex->Pins[Index];
/* copy the frame to pin */RtlMoveMemory(CurPin->Data, Pin->Data, Pin->BytesAvailable);
CurPin->BytesUsed = Pin->BytesAvailable;
}
}
}
/* done */returnSTATUS_SUCCESS;
}
Generated on Thu May 24 2012 05:12:32 for ReactOS by
1.7.6.1
ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.