Author: pschweitzer
Date: Wed Oct 29 23:10:31 2014
New Revision: 65116

URL: http://svn.reactos.org/svn/reactos?rev=65116&view=rev
Log:
[FASTFAT]
Now that we start to honor the storage stack (ie, without the IopParseDevice 
hack ;-)), we have to let FSDs forward device IOCTLs.
This allows back copying files on 1st stage

Modified:
    trunk/reactos/drivers/filesystems/fastfat/iface.c
    trunk/reactos/drivers/filesystems/fastfat/misc.c

Modified: trunk/reactos/drivers/filesystems/fastfat/iface.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/iface.c?rev=65116&r1=65115&r2=65116&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/iface.c   [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/iface.c   [iso-8859-1] Wed Oct 29 
23:10:31 2014
@@ -99,6 +99,7 @@
     DriverObject->MajorFunction[IRP_MJ_SET_VOLUME_INFORMATION] = 
VfatBuildRequest;
     DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = VfatShutdown;
     DriverObject->MajorFunction[IRP_MJ_LOCK_CONTROL] = VfatBuildRequest;
+    DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = VfatBuildRequest;
     DriverObject->MajorFunction[IRP_MJ_CLEANUP] = VfatBuildRequest;
     DriverObject->MajorFunction[IRP_MJ_FLUSH_BUFFERS] = VfatBuildRequest;
     DriverObject->MajorFunction[IRP_MJ_PNP] = VfatBuildRequest;

Modified: trunk/reactos/drivers/filesystems/fastfat/misc.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/misc.c?rev=65116&r1=65115&r2=65116&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/misc.c    [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/misc.c    [iso-8859-1] Wed Oct 29 
23:10:31 2014
@@ -95,6 +95,16 @@
 
 static
 NTSTATUS
+VfatDeviceControl(
+    IN PVFAT_IRP_CONTEXT IrpContext)
+{
+    IoSkipCurrentIrpStackLocation(IrpContext->Irp);
+
+    return IoCallDriver(IrpContext->DeviceExt->StorageDevice, IrpContext->Irp);
+}
+
+static
+NTSTATUS
 VfatDispatchRequest(
     IN PVFAT_IRP_CONTEXT IrpContext)
 {
@@ -127,6 +137,8 @@
             return VfatSetVolumeInformation(IrpContext);
         case IRP_MJ_LOCK_CONTROL:
             return VfatLockControl(IrpContext);
+        case IRP_MJ_DEVICE_CONTROL:
+            return VfatDeviceControl(IrpContext);
         case IRP_MJ_CLEANUP:
             return VfatCleanup(IrpContext);
         case IRP_MJ_FLUSH_BUFFERS:


Reply via email to