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... ============================================================================== --- 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... ============================================================================== --- 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: