IoPageRead(): Do the paging request as synchronous (IRP_SYNCHRONOUS_PAGING_IO)
authorshort <>
Fri, 22 Nov 2002 13:22:52 +0000 (13:22 +0000)
committershort <>
Fri, 22 Nov 2002 13:22:52 +0000 (13:22 +0000)
ntoskrnl/io/page.c

index 53ce175..20db753 100644 (file)
@@ -82,7 +82,15 @@ IoPageRead(PFILE_OBJECT FileObject,
    {
       return (STATUS_INSUFFICIENT_RESOURCES);
    }
-   Irp->Flags = IRP_NOCACHE|IRP_PAGING_IO;
+   Irp->Flags = IRP_NOCACHE
+#ifndef LIBCAPTIVE
+         |IRP_PAGING_IO;
+#else /* !LIBCAPTIVE */
+/* IRP_SYNCHRONOUS_PAGING_IO: We need to prevent STATUS_PENDING
+ * IRP_PAGING_IO: We need to pass check in W32 filesystem as we are FO_CLEANUP_COMPLETE (why?)
+ */
+         |IRP_PAGING_IO|IRP_SYNCHRONOUS_PAGING_IO;
+#endif /* !LIBCAPTIVE */
    StackPtr = IoGetNextIrpStackLocation(Irp);
    StackPtr->FileObject = FileObject;
    DPRINT("Before IoCallDriver\n");