diff --git a/src/sys/volume.c b/src/sys/volume.c index bbed0538..be2b220e 100644 --- a/src/sys/volume.c +++ b/src/sys/volume.c @@ -473,6 +473,13 @@ static NTSTATUS FspVolumeMountNoLock( Vpb->SerialNumber = FsvolDeviceExtension->VolumeParams.VolumeSerialNumber; IoReleaseVpbSpinLock(Irql); + /* + * Argh! Turns out that the IrpSp->Parameters.MountVolume.DeviceObject is + * passed to us with an extra reference, which is not removed on SUCCESS. + * So go ahead and dereference it now! + */ + ObDereferenceObject(FsvrtDeviceObject); + Irp->IoStatus.Information = 0; return STATUS_SUCCESS; }