mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
qga-win: Fix guest-get-fsinfo multi-disks collection
When a volume has more than one disk, all disks cannot be returned correctly because there is not enough malloced memory for disk extents, so before executing DeviceIoControl for the second time, get the correct size of the required memory space to store all disk extents. Details: https://learn.microsoft.com/en-us/windows/win32/api/winioctl/ns-winioctl-volume_disk_extents Signed-off-by: Peng Ji <peng.ji@smartx.com> Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
This commit is contained in:
parent
8c72e19bfd
commit
7c4486350a
1 changed files with 2 additions and 0 deletions
|
@ -935,6 +935,8 @@ static GuestDiskAddressList *build_guest_disk_info(char *guid, Error **errp)
|
|||
DWORD last_err = GetLastError();
|
||||
if (last_err == ERROR_MORE_DATA) {
|
||||
/* Try once more with big enough buffer */
|
||||
size = sizeof(VOLUME_DISK_EXTENTS) +
|
||||
(sizeof(DISK_EXTENT) * (extents->NumberOfDiskExtents - 1));
|
||||
g_free(extents);
|
||||
extents = g_malloc0(size);
|
||||
if (!DeviceIoControl(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue