Fix KDBG and enable IRP_NOCACHE for ReadFile. Also disable SEH for Buffer since PRobeForWrite has a bug and cannot probe past a page Modified: trunk/reactos/ntoskrnl/io/file.c Modified: trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c _____
Modified: trunk/reactos/ntoskrnl/io/file.c --- trunk/reactos/ntoskrnl/io/file.c 2005-05-09 01:06:39 UTC (rev 15162) +++ trunk/reactos/ntoskrnl/io/file.c 2005-05-09 01:14:42 UTC (rev 15163) @@ -2457,9 +2457,11 @@
ProbeForWrite(IoStatusBlock, sizeof(IO_STATUS_BLOCK), sizeof(ULONG)); + #if 0 ProbeForWrite(Buffer, Length, sizeof(ULONG)); + #endif } _SEH_HANDLE { @@ -2570,17 +2572,8 @@ Irp->Overlay.AsynchronousParameters.UserApcRoutine = ApcRoutine; Irp->Overlay.AsynchronousParameters.UserApcContext = ApcContext; Irp->Flags |= IRP_READ_OPERATION; + if (FileObject->Flags & FO_NO_INTERMEDIATE_BUFFERING) Irp->Flags |= IRP_NOCACHE;
- /* FIXME: KDBG is using this flag and not reading from cluster-aligned. Investigate. */ -#if 0 - if (FileObject->Flags & FO_NO_INTERMEDIATE_BUFFERING) - { - DbgBreakPoint(); - Irp->Flags |= IRP_NOCACHE; - DPRINT1("It's us: %p\n", FileObject); - } -#endif - /* Setup Stack Data */ StackPtr = IoGetNextIrpStackLocation(Irp); StackPtr->FileObject = FileObject; _____
Modified: trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c --- trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c 2005-05-09 01:06:39 UTC (rev 15162) +++ trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c 2005-05-09 01:14:42 UTC (rev 15163) @@ -439,7 +439,7 @@
&ObjectAttributes, &IoStatusBlock, FILE_SHARE_READ|FILE_SHARE_WRITE, - FILE_SYNCHRONOUS_IO_NONALERT|FILE_NO_INTERMEDIATE_BUFFERING); + FILE_SYNCHRONOUS_IO_NONALERT); if (!NT_SUCCESS(Status)) { DPRINT("Could not open image file: %wZ\n", &FileName);