diff --git a/reactos/drivers/filesystems/fastfat/iface.c b/reactos/drivers/filesystems/fastfat/iface.c index 03ddfe887fd..b6d61430b51 100644 --- a/reactos/drivers/filesystems/fastfat/iface.c +++ b/reactos/drivers/filesystems/fastfat/iface.c @@ -99,6 +99,7 @@ DriverEntry( 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; diff --git a/reactos/drivers/filesystems/fastfat/misc.c b/reactos/drivers/filesystems/fastfat/misc.c index b48ac9028a9..ddd547ff8fe 100644 --- a/reactos/drivers/filesystems/fastfat/misc.c +++ b/reactos/drivers/filesystems/fastfat/misc.c @@ -93,6 +93,16 @@ Fail: return Status; } +static +NTSTATUS +VfatDeviceControl( + IN PVFAT_IRP_CONTEXT IrpContext) +{ + IoSkipCurrentIrpStackLocation(IrpContext->Irp); + + return IoCallDriver(IrpContext->DeviceExt->StorageDevice, IrpContext->Irp); +} + static NTSTATUS VfatDispatchRequest( @@ -127,6 +137,8 @@ VfatDispatchRequest( 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: