[MOUNTMGR]

- Fix broken logic in OnlineMountedVolumes()
- Add missing return in MountMgrNotifyNameChange()

CID #515247
CID #716002

svn path=/trunk/; revision=62664
This commit is contained in:
Pierre Schweitzer 2014-04-06 16:30:29 +00:00
parent f7bab18907
commit 369fcf0bf3
2 changed files with 7 additions and 5 deletions

View file

@ -746,10 +746,11 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension,
return;
}
RestartScan = TRUE;
/* Query mount points */
while (TRUE)
{
RestartScan = TRUE;
SymbolicName.Length = 0;
SymbolicName.MaximumLength = sizeof(SymbolicNameBuffer);
SymbolicName.Buffer = SymbolicNameBuffer;
@ -771,8 +772,7 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension,
if (ReparsePointInformation.FileReference == SavedReparsePointInformation.FileReference &&
ReparsePointInformation.Tag == SavedReparsePointInformation.Tag)
{
ZwClose(Handle);
return;
break;
}
}
else
@ -782,8 +782,7 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension,
if (!NT_SUCCESS(Status) || ReparsePointInformation.Tag != IO_REPARSE_TAG_MOUNT_POINT)
{
ZwClose(Handle);
return;
break;
}
/* Get the volume name associated to the mount point */
@ -813,6 +812,8 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension,
PostOnlineNotification(DeviceExtension, &VolumeDeviceInformation->SymbolicName);
}
}
ZwClose(Handle);
}
/*

View file

@ -414,6 +414,7 @@ MountMgrNotifyNameChange(IN PDEVICE_EXTENSION DeviceExtension,
{
ObDereferenceObject(DeviceObject);
ObDereferenceObject(FileObject);
return;
}
Stack = IoGetNextIrpStackLocation(Irp);