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/fastfa…
==============================================================================
--- 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/fastfa…
==============================================================================
--- 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: