Author: fireball
Date: Tue Sep 11 14:29:03 2007
New Revision: 29002
URL:
http://svn.reactos.org/svn/reactos?rev=29002&view=rev
Log:
- When media is changed, set VolumeDevice's DO_VERIFY_VOLUME flag so it actually gets
verified.
- IoVerifyVolume() actually gives two successful statuses - STATUS_SUCCESS and
STATUS_WRONG_VOLUME. Respect that when processing an device ioctl.
- "Inability to change CD after boot" issue is fixed.
Modified:
trunk/reactos/drivers/filesystems/cdfs/common.c
trunk/reactos/drivers/filesystems/cdfs/create.c
Modified: trunk/reactos/drivers/filesystems/cdfs/common.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/c…
==============================================================================
--- trunk/reactos/drivers/filesystems/cdfs/common.c (original)
+++ trunk/reactos/drivers/filesystems/cdfs/common.c Tue Sep 11 14:29:03 2007
@@ -199,6 +199,9 @@
NewStatus = IoVerifyVolume(DeviceToVerify, FALSE);
DPRINT1("IoVerifyVolume() returned (Status %lx)\n", NewStatus);
+
+ if (NewStatus == STATUS_SUCCESS || NewStatus == STATUS_WRONG_VOLUME)
+ Status = STATUS_SUCCESS;
}
DPRINT("Returning Status %x\n", Status);
Modified: trunk/reactos/drivers/filesystems/cdfs/create.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/c…
==============================================================================
--- trunk/reactos/drivers/filesystems/cdfs/create.c (original)
+++ trunk/reactos/drivers/filesystems/cdfs/create.c Tue Sep 11 14:29:03 2007
@@ -141,6 +141,10 @@
DPRINT ("Status %lx\n", Status);
if (!NT_SUCCESS(Status))
{
+ if (Status == STATUS_NO_MEDIA_IN_DEVICE || Status == STATUS_VERIFY_REQUIRED)
+ {
+ DeviceExt->VolumeDevice->Flags |= DO_VERIFY_VOLUME;
+ }
DPRINT1 ("Status %lx\n", Status);
return Status;
}