Do only signal the other side of the pipe if the pipe is connected. Modified: trunk/reactos/drivers/fs/np/rw.c _____
Modified: trunk/reactos/drivers/fs/np/rw.c --- trunk/reactos/drivers/fs/np/rw.c 2005-02-27 17:03:00 UTC (rev 13766) +++ trunk/reactos/drivers/fs/np/rw.c 2005-02-27 20:38:36 UTC (rev 13767) @@ -102,7 +102,10 @@
if (Fcb->ReadDataAvailable == 0) { KeResetEvent(&Fcb->Event); - KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE); + if (Fcb->PipeState == FILE_PIPE_CONNECTED_STATE) + { + KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE); + } KeReleaseSpinLock(&Fcb->DataListLock, OldIrql); if (Information > 0) { @@ -190,7 +193,10 @@
if (Information > 0) { - KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE); + if (Fcb->PipeState == FILE_PIPE_CONNECTED_STATE) + { + KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE); + } break; } }