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

svn path=/trunk/; revision=29002
This commit is contained in:
Aleksey Bragin 2007-09-11 10:29:03 +00:00
parent cf9e10327c
commit 108d48388e
2 changed files with 7 additions and 0 deletions

View file

@ -199,6 +199,9 @@ CdfsDeviceIoControl (IN PDEVICE_OBJECT DeviceObject,
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);

View file

@ -141,6 +141,10 @@ CdfsOpenFile(PDEVICE_EXTENSION DeviceExt,
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;
}