Skip to content

Commit 1f8be43

Browse files
committed
Disk (Windows): use MS-DOS device name as mountFrom result, instead of useless GUID volume name
1 parent 3081355 commit 1f8be43

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# 2.8.10
22

3+
Changes:
4+
* Use MS-DOS device name as mountFrom result, instead of useless GUID volume name (Windows, Disk)
5+
36
Bugfixes:
47
* Don't display 0.00 GHz (CPU, FreeBSD)
58
* Don't detect manufactor of Qualcomm as ARM (CPU, Android)

src/detection/disk/disk_windows.c

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const char* ffDetectDisksImpl(FFlist* disks)
1515

1616
for(uint32_t i = 0; i < length; i++)
1717
{
18-
const wchar_t* mountpoint = buf + i;
18+
wchar_t* mountpoint = buf + i;
1919

2020
UINT driveType = GetDriveTypeW(mountpoint);
2121
if(driveType == DRIVE_NO_ROOT_DIR)
@@ -25,13 +25,6 @@ const char* ffDetectDisksImpl(FFlist* disks)
2525
}
2626

2727
FFDisk* disk = ffListAdd(disks);
28-
ffStrbufInitWS(&disk->mountpoint, mountpoint);
29-
30-
wchar_t volumeName[64];
31-
if(GetVolumeNameForVolumeMountPointW(mountpoint, volumeName, sizeof(volumeName) / sizeof(*volumeName)))
32-
ffStrbufInitWS(&disk->mountFrom, volumeName);
33-
else
34-
ffStrbufInit(&disk->mountFrom);
3528

3629
if(!GetDiskFreeSpaceExW(
3730
mountpoint,
@@ -78,6 +71,17 @@ const char* ffDetectDisksImpl(FFlist* disks)
7871
disk->type |= FF_DISK_VOLUME_TYPE_READONLY_BIT;
7972
}
8073

74+
ffStrbufInitWS(&disk->mountpoint, mountpoint);
75+
if (mountpoint[2] == L'\\' && mountpoint[3] == L'\0')
76+
{
77+
wchar_t volumeName[MAX_PATH + 1];
78+
mountpoint[2] = L'\0';
79+
if(QueryDosDeviceW(mountpoint, volumeName, sizeof(volumeName) / sizeof(*volumeName)))
80+
ffStrbufInitWS(&disk->mountFrom, volumeName);
81+
else
82+
ffStrbufInit(&disk->mountFrom);
83+
}
84+
8185
//Unsupported
8286
disk->filesUsed = 0;
8387
disk->filesTotal = 0;

src/modules/disk/disk.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -422,8 +422,16 @@ void ffGenerateDiskJsonResult(FFDiskOptions* options, yyjson_mut_doc* doc, yyjso
422422
yyjson_mut_obj_add_uint(doc, bytes, "used", item->bytesUsed);
423423

424424
yyjson_mut_val* files = yyjson_mut_obj_add_obj(doc, obj, "files");
425-
yyjson_mut_obj_add_uint(doc, files, "total", item->filesTotal);
426-
yyjson_mut_obj_add_uint(doc, files, "used", item->filesUsed);
425+
if (item->filesTotal == 0 && item->filesUsed == 0)
426+
{
427+
yyjson_mut_obj_add_null(doc, files, "total");
428+
yyjson_mut_obj_add_null(doc, files, "used");
429+
}
430+
else
431+
{
432+
yyjson_mut_obj_add_uint(doc, files, "total", item->filesTotal);
433+
yyjson_mut_obj_add_uint(doc, files, "used", item->filesUsed);
434+
}
427435

428436
yyjson_mut_obj_add_strbuf(doc, obj, "filesystem", &item->filesystem);
429437
yyjson_mut_obj_add_strbuf(doc, obj, "mountpoint", &item->mountpoint);

0 commit comments

Comments
 (0)