+IoSynchronousPageWrite()
authorshort <>
Mon, 20 Jan 2003 23:28:16 +0000 (23:28 +0000)
committershort <>
Mon, 20 Jan 2003 23:28:16 +0000 (23:28 +0000)
ntoskrnl/io/page.c

index ad190c6..5e43423 100644 (file)
@@ -51,6 +51,10 @@ IoPageWrite(PFILE_OBJECT FileObject,
    StackPtr->FileObject = FileObject;
    DPRINT("Before IoCallDriver\n");
    Status = IofCallDriver(FileObject->DeviceObject,Irp);
+   /* FIXME: IoBuildSynchronousFsdRequestWithMdl() will fill 'StatusBlock' to 'Irp->UserIoSb'
+    * but W32 filesystem takes care just of 'Irp->IoStatus'. Hack it back here.
+    */
+   *StatusBlock=Irp->IoStatus;
    DPRINT("Status %d STATUS_PENDING %d\n",Status,STATUS_PENDING);
    return(Status);
 }
@@ -104,8 +108,6 @@ IoPageRead(PFILE_OBJECT FileObject,
    return(Status);
 }
 
-#ifndef LIBCAPTIVE
-
 NTSTATUS STDCALL 
 IoSynchronousPageWrite (PFILE_OBJECT FileObject,
                        PMDL Mdl,
@@ -136,10 +138,12 @@ IoSynchronousPageWrite (PFILE_OBJECT FileObject,
    StackPtr->FileObject = FileObject;
    DPRINT("Before IoCallDriver\n");
    Status = IofCallDriver(FileObject->DeviceObject,Irp);
+   /* FIXME: IoBuildSynchronousFsdRequestWithMdl() will fill 'StatusBlock' to 'Irp->UserIoSb'
+    * but W32 filesystem takes care just of 'Irp->IoStatus'. Hack it back here.
+    */
+   *StatusBlock=Irp->IoStatus;
    DPRINT("Status %d STATUS_PENDING %d\n",Status,STATUS_PENDING);
    return(Status);
 }
 
-#endif /* LIBCAPTIVE */
-
 /* EOF */