diff options
author | Chen Hanxiao <chenhanxiao@gmail.com> | 2018-06-14 16:06:07 +0800 |
---|---|---|
committer | Michael Roth <mdroth@linux.vnet.ibm.com> | 2018-07-03 11:38:05 -0500 |
commit | c07e5e6ef3b5a2737387f86912ac30d1e9d48909 (patch) | |
tree | 5dcc2cbd58a691fa7d8a3a5c476a7e48832820f0 /qga | |
parent | 25b5ff1a860634c2b1463b2882ed02cd55f8ac62 (diff) | |
download | qemu-c07e5e6ef3b5a2737387f86912ac30d1e9d48909.zip qemu-c07e5e6ef3b5a2737387f86912ac30d1e9d48909.tar.gz qemu-c07e5e6ef3b5a2737387f86912ac30d1e9d48909.tar.bz2 |
qga-win: add driver path usage to GuestFilesystemInfo
This patch adds support for getting the usage of
windows driver path.
The usage of fs stored as used_bytes and total_bytes.
Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'qga')
-rw-r--r-- | qga/commands-win32.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 73f31fa..318d760 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -670,6 +670,7 @@ static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp) char fs_name[32]; char vol_info[MAX_PATH+1]; size_t len; + uint64_t i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes; GuestFilesystemInfo *fs = NULL; GetVolumePathNamesForVolumeName(guid, (LPCH)&mnt, 0, &info_size); @@ -699,10 +700,21 @@ static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp) fs_name[sizeof(fs_name) - 1] = 0; fs = g_malloc(sizeof(*fs)); fs->name = g_strdup(guid); + fs->has_total_bytes = false; + fs->has_used_bytes = false; if (len == 0) { fs->mountpoint = g_strdup("System Reserved"); } else { fs->mountpoint = g_strndup(mnt_point, len); + if (GetDiskFreeSpaceEx(fs->mountpoint, + (PULARGE_INTEGER) & i64FreeBytesToCaller, + (PULARGE_INTEGER) & i64TotalBytes, + (PULARGE_INTEGER) & i64FreeBytes)) { + fs->used_bytes = i64TotalBytes - i64FreeBytes; + fs->total_bytes = i64TotalBytes; + fs->has_total_bytes = true; + fs->has_used_bytes = true; + } } fs->type = g_strdup(fs_name); fs->disk = build_guest_disk_info(guid, errp); |