diff --git a/src/sys/cleanup.c b/src/sys/cleanup.c index 570a5f81..0c6ae633 100644 --- a/src/sys/cleanup.c +++ b/src/sys/cleanup.c @@ -48,7 +48,28 @@ static NTSTATUS FspFsvolCleanup( { PAGED_CODE(); - return STATUS_INVALID_DEVICE_REQUEST; + NTSTATUS Result; + FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(DeviceObject); + PDEVICE_OBJECT FsvrtDeviceObject = FsvolDeviceExtension->FsvrtDeviceObject; + + if (!FspDeviceRetain(FsvrtDeviceObject)) + return STATUS_CANCELLED; + try + { + FSP_FSVRT_DEVICE_EXTENSION *FsvrtDeviceExtension = + FspFsvrtDeviceExtension(FsvrtDeviceObject); + PFILE_OBJECT FileObject = IrpSp->FileObject; + + Result = STATUS_PENDING; + + exit:; + } + finally + { + FspDeviceRelease(FsvrtDeviceObject); + } + + return Result; } VOID FspFsvolCleanupComplete(