[FASTFAT]
[reactos.git] / reactos / drivers / filesystems / fastfat / rw.c
index 9dcddea..c3834b5 100644 (file)
@@ -555,6 +555,10 @@ VfatRead(
 
     ASSERT(IrpContext->DeviceObject);
 
+    PagingIo = BooleanFlagOn(IrpContext->Irp->Flags, IRP_PAGING_IO);
+    CanWait = BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT);
+    NoCache = BooleanFlagOn(IrpContext->Irp->Flags, IRP_NOCACHE);
+
     // This request is not allowed on the main device object
     if (IrpContext->DeviceObject == VfatGlobalData->DeviceObject)
     {
@@ -568,6 +572,8 @@ VfatRead(
     Fcb = IrpContext->FileObject->FsContext;
     ASSERT(Fcb);
 
+    IsVolume = BooleanFlagOn(Fcb->Flags, FCB_IS_VOLUME);
+
     if (BooleanFlagOn(Fcb->Flags, FCB_IS_PAGE_FILE))
     {
         PFATINFO FatInfo = &IrpContext->DeviceExt->FatInfo;
@@ -584,10 +590,6 @@ VfatRead(
     ByteOffset = IrpContext->Stack->Parameters.Read.ByteOffset;
     Length = IrpContext->Stack->Parameters.Read.Length;
     BytesPerSector = IrpContext->DeviceExt->FatInfo.BytesPerSector;
-    PagingIo = BooleanFlagOn(IrpContext->Irp->Flags, IRP_PAGING_IO);
-    CanWait = BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT);
-    IsVolume = BooleanFlagOn(Fcb->Flags, FCB_IS_VOLUME);
-    NoCache = BooleanFlagOn(IrpContext->Irp->Flags, IRP_NOCACHE);
 
     /* fail if file is a directory and no paged read */
     if (vfatFCBIsDirectory(Fcb) && !PagingIo)
@@ -779,6 +781,10 @@ VfatWrite(
 
     ASSERT(IrpContext->DeviceObject);
 
+    PagingIo = BooleanFlagOn(IrpContext->Irp->Flags, IRP_PAGING_IO);
+    CanWait = BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT);
+    NoCache = BooleanFlagOn(IrpContext->Irp->Flags, IRP_NOCACHE);
+
     // This request is not allowed on the main device object
     if (IrpContext->DeviceObject == VfatGlobalData->DeviceObject)
     {
@@ -792,6 +798,9 @@ VfatWrite(
     Fcb = IrpContext->FileObject->FsContext;
     ASSERT(Fcb);
 
+    IsVolume = BooleanFlagOn(Fcb->Flags, FCB_IS_VOLUME);
+    IsFAT = BooleanFlagOn(Fcb->Flags, FCB_IS_FAT);
+
     if (BooleanFlagOn(Fcb->Flags, FCB_IS_PAGE_FILE))
     {
         PFATINFO FatInfo = &IrpContext->DeviceExt->FatInfo;
@@ -805,12 +814,6 @@ VfatWrite(
 
     DPRINT("<%wZ>\n", &Fcb->PathNameU);
 
-    PagingIo = BooleanFlagOn(IrpContext->Irp->Flags, IRP_PAGING_IO);
-    CanWait = BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT);
-    IsVolume = BooleanFlagOn(Fcb->Flags, FCB_IS_VOLUME);
-    IsFAT = BooleanFlagOn(Fcb->Flags, FCB_IS_FAT);
-    NoCache = BooleanFlagOn(IrpContext->Irp->Flags, IRP_NOCACHE);
-
     /* fail if file is a directory and no paged read */
     if (vfatFCBIsDirectory(Fcb) && !PagingIo)
     {