Filip Navara wrote:
Does the attached patch make any difference (it just reverts most of the changes to rw.c)?
- Filip
Index: rw.c
--- rw.c (revision 17183) +++ rw.c (revision 17155) @@ -398,25 +398,23 @@ { if (Fcb->ReadDataAvailable == 0) {
if (Fcb->PipeState == FILE_PIPE_CONNECTED_STATE){ASSERT(Fcb->OtherSide != NULL);KeSetEvent(&Fcb->OtherSide->WriteEvent, IO_NO_INCREMENT, FALSE);}if (Information > 0 &&(Fcb->Pipe->ReadMode != FILE_PIPE_BYTE_STREAM_MODE ||Fcb->PipeState != FILE_PIPE_CONNECTED_STATE)){break;} if (Fcb->PipeState != FILE_PIPE_CONNECTED_STATE) { DPRINT("PipeState: %x\n", Fcb->PipeState);
if (Fcb->PipeState == FILE_PIPE_LISTENING_STATE)Status = STATUS_PIPE_LISTENING;elseStatus = STATUS_PIPE_DISCONNECTED;
Status = STATUS_PIPE_BROKEN; break; }
ASSERT(Fcb->OtherSide != NULL);KeSetEvent(&Fcb->OtherSide->WriteEvent, IO_NO_INCREMENT, FALSE);if (Information > 0 &&Fcb->Pipe->ReadMode != FILE_PIPE_BYTE_STREAM_MODE){break;}ExReleaseFastMutex(&Fcb->DataListLock); if (IoIsOperationSynchronous(Irp)) {
The patch does fix my problem. Compiling Ros on Ros works again.
- Hartmut