- Call the FSD if the volume is mounted in IoVerifyVolume.

svn path=/trunk/; revision=4978
This commit is contained in:
Hartmut Birr 2003-06-27 19:00:33 +00:00
parent b36ca324a9
commit fcde5c2e54

View file

@ -1,4 +1,4 @@
/* $Id: fs.c,v 1.33 2003/05/22 00:47:04 gdalsnes Exp $ /* $Id: fs.c,v 1.34 2003/06/27 19:00:33 hbirr Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -436,6 +436,7 @@ IoVerifyVolume(IN PDEVICE_OBJECT DeviceObject,
KEVENT Event; KEVENT Event;
PIRP Irp; PIRP Irp;
NTSTATUS Status; NTSTATUS Status;
PDEVICE_OBJECT DevObject;
DPRINT("IoVerifyVolume(DeviceObject %x AllowRawMount %x)\n", DPRINT("IoVerifyVolume(DeviceObject %x AllowRawMount %x)\n",
DeviceObject, AllowRawMount); DeviceObject, AllowRawMount);
@ -453,12 +454,13 @@ IoVerifyVolume(IN PDEVICE_OBJECT DeviceObject,
if (DeviceObject->Vpb->Flags & VPB_MOUNTED) if (DeviceObject->Vpb->Flags & VPB_MOUNTED)
{ {
/* Issue verify request to the FSD */ /* Issue verify request to the FSD */
DevObject = DeviceObject->Vpb->DeviceObject;
KeInitializeEvent(&Event, KeInitializeEvent(&Event,
NotificationEvent, NotificationEvent,
FALSE); FALSE);
Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE); Irp = IoAllocateIrp(DevObject->StackSize, TRUE);
if (Irp==NULL) if (Irp==NULL)
{ {
return(STATUS_INSUFFICIENT_RESOURCES); return(STATUS_INSUFFICIENT_RESOURCES);
@ -473,14 +475,14 @@ IoVerifyVolume(IN PDEVICE_OBJECT DeviceObject,
StackPtr->MinorFunction = IRP_MN_VERIFY_VOLUME; StackPtr->MinorFunction = IRP_MN_VERIFY_VOLUME;
StackPtr->Flags = 0; StackPtr->Flags = 0;
StackPtr->Control = 0; StackPtr->Control = 0;
StackPtr->DeviceObject = DeviceObject; StackPtr->DeviceObject = DevObject;
StackPtr->FileObject = NULL; StackPtr->FileObject = NULL;
StackPtr->CompletionRoutine = NULL; StackPtr->CompletionRoutine = NULL;
StackPtr->Parameters.VerifyVolume.Vpb = DeviceObject->Vpb; StackPtr->Parameters.VerifyVolume.Vpb = DeviceObject->Vpb;
StackPtr->Parameters.VerifyVolume.DeviceObject = DeviceObject; StackPtr->Parameters.VerifyVolume.DeviceObject = DeviceObject;
Status = IoCallDriver(DeviceObject, Status = IoCallDriver(DevObject,
Irp); Irp);
if (Status==STATUS_PENDING) if (Status==STATUS_PENDING)
{ {