Skip to content

Commit 8e952f1

Browse files
committed
[DISKPART] Show more disk details
- Show device description, status and bus type in the 'detail disk' command.
1 parent 7f64cd9 commit 8e952f1

File tree

17 files changed

+550
-53
lines changed

17 files changed

+550
-53
lines changed

base/system/diskpart/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ add_dependencies(diskpart diskpart_msg)
5454

5555
set_module_type(diskpart win32cui UNICODE)
5656
target_link_libraries(diskpart conutils ${PSEH_LIB})
57-
add_importlibs(diskpart fmifs advapi32 msvcrt kernel32 ntdll)
57+
add_importlibs(diskpart fmifs advapi32 msvcrt user32 kernel32 ntdll)
5858

5959
if(MSVC)
6060
add_importlibs(diskpart ntdll)

base/system/diskpart/detail.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,17 @@ DetailDisk(
9090

9191
/* TODO: Print more disk details */
9292
ConPuts(StdOut, L"\n");
93+
ConResPrintf(StdOut, IDS_DETAIL_DISK_DESCRIPTION, CurrentDisk->Description);
9394
if (CurrentDisk->LayoutBuffer->PartitionStyle == PARTITION_STYLE_GPT)
9495
PrintGUID(szBuffer, &CurrentDisk->LayoutBuffer->Gpt.DiskId);
9596
else if (CurrentDisk->LayoutBuffer->PartitionStyle == PARTITION_STYLE_MBR)
9697
swprintf(szBuffer, L"%08lx", CurrentDisk->LayoutBuffer->Mbr.Signature);
9798
else
9899
wcscpy(szBuffer, L"00000000");
99-
ConResPrintf(StdOut, IDS_DETAIL_INFO_DISK_ID, szBuffer);
100+
ConResPrintf(StdOut, IDS_DETAIL_DISK_ID, szBuffer);
101+
PrintBusType(szBuffer, ARRAYSIZE(szBuffer), CurrentDisk->BusType);
102+
ConResPrintf(StdOut, IDS_DETAIL_DISK_TYPE, szBuffer);
103+
ConResPrintf(StdOut, IDS_DETAIL_DISK_STATUS, L"Online");
100104
ConResPrintf(StdOut, IDS_DETAIL_INFO_PATH, CurrentDisk->PathId);
101105
ConResPrintf(StdOut, IDS_DETAIL_INFO_TARGET, CurrentDisk->TargetId);
102106
ConResPrintf(StdOut, IDS_DETAIL_INFO_LUN_ID, CurrentDisk->Lun);

base/system/diskpart/diskpart.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
#define WIN32_NO_STATUS
1818
#include <windef.h>
1919
#include <winbase.h>
20+
#include <winnls.h>
2021
#include <winreg.h>
2122
#include <wincon.h>
2223
#include <winioctl.h>
24+
#include <winuser.h>
2325
#include <ntsecapi.h>
2426

2527
#include <errno.h>
@@ -49,6 +51,9 @@
4951
#include <ndk/setypes.h>
5052
#include <ndk/umfuncs.h>
5153

54+
#include <ntddscsi.h>
55+
#include <ntddstor.h>
56+
5257
#include <fmifs/fmifs.h>
5358
#include <guiddef.h>
5459
#include <diskguid.h>
@@ -172,6 +177,10 @@ typedef struct _DISKENTRY
172177
{
173178
LIST_ENTRY ListEntry;
174179

180+
PWSTR Description;
181+
PWSTR Location;
182+
STORAGE_BUS_TYPE BusType;
183+
175184
ULONGLONG Cylinders;
176185
ULONG TracksPerCylinder;
177186
ULONG SectorsPerTrack;
@@ -481,6 +490,12 @@ StringToGUID(
481490
_Out_ GUID *pGuid,
482491
_In_ PWSTR pszString);
483492

493+
VOID
494+
PrintBusType(
495+
_Out_ PWSTR pszBuffer,
496+
_In_ INT cchBufferMax,
497+
_In_ STORAGE_BUS_TYPE Bustype);
498+
484499
/* offline.c */
485500
BOOL offline_main(INT argc, LPWSTR *argv);
486501

base/system/diskpart/lang/de-DE.rc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ END
5656
/* Disk Information Labels */
5757
STRINGTABLE
5858
BEGIN
59-
IDS_DETAIL_INFO_DISK_ID "Disk ID: %s\n"
60-
IDS_DETAIL_INFO_TYPE "Type"
61-
IDS_DETAIL_INFO_STATUS "Status"
59+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
60+
IDS_DETAIL_DISK_ID "Disk ID: %s\n"
61+
IDS_DETAIL_DISK_TYPE "Typ : %s\n"
62+
IDS_DETAIL_DISK_STATUS "Status : %s\n"
6263
IDS_DETAIL_INFO_PATH "Path : %hu\n"
6364
IDS_DETAIL_INFO_TARGET "Target : %hu\n"
6465
IDS_DETAIL_INFO_LUN_ID "Lun ID : %hu\n"
@@ -267,3 +268,30 @@ BEGIN
267268
IDS_ERROR_INVALID_ARGS "Invalid arguments\n"
268269
IDS_ERROR_NO_MEDIUM "Es befindet sich kein Medium im Gerät.\n"
269270
END
271+
272+
/* Bus type */
273+
STRINGTABLE
274+
BEGIN
275+
IDS_BUSTYPE_UNKNOWN "Unknown"
276+
IDS_BUSTYPE_SCSI "SCSI"
277+
IDS_BUSTYPE_ATAPI "ATAPI"
278+
IDS_BUSTYPE_ATA "ATA"
279+
IDS_BUSTYPE_1394 "1394"
280+
IDS_BUSTYPE_SSA "SSA"
281+
IDS_BUSTYPE_FIBRE "FibreChannel"
282+
IDS_BUSTYPE_USB "USB"
283+
IDS_BUSTYPE_RAID "RAID"
284+
IDS_BUSTYPE_ISCSI "iSCSI"
285+
IDS_BUSTYPE_SAS "SAS"
286+
IDS_BUSTYPE_SATA "SATA"
287+
IDS_BUSTYPE_SD "SD"
288+
IDS_BUSTYPE_MMC "MMC"
289+
IDS_BUSTYPE_VIRTUAL "Virtual"
290+
IDS_BUSTYPE_FBV "FileBackedVirtual"
291+
IDS_BUSTYPE_SPACES "StorageSpaces"
292+
IDS_BUSTYPE_NVME "NVME"
293+
IDS_BUSTYPE_SCM "SCM"
294+
IDS_BUSTYPE_UFS "UFS"
295+
IDS_BUSTYPE_NVMEOF "NVMEOF"
296+
IDS_BUSTYPE_OTHER "Anderer"
297+
END

base/system/diskpart/lang/en-US.rc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ END
5656
/* Disk Information Labels */
5757
STRINGTABLE
5858
BEGIN
59-
IDS_DETAIL_INFO_DISK_ID "Disk ID: %s\n"
60-
IDS_DETAIL_INFO_TYPE "Type"
61-
IDS_DETAIL_INFO_STATUS "Status"
59+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
60+
IDS_DETAIL_DISK_ID "Disk ID: %s\n"
61+
IDS_DETAIL_DISK_TYPE "Type : %s\n"
62+
IDS_DETAIL_DISK_STATUS "Status : %s\n"
6263
IDS_DETAIL_INFO_PATH "Path : %hu\n"
6364
IDS_DETAIL_INFO_TARGET "Target : %hu\n"
6465
IDS_DETAIL_INFO_LUN_ID "Lun ID : %hu\n"
@@ -267,3 +268,30 @@ BEGIN
267268
IDS_ERROR_INVALID_ARGS "Invalid arguments\n"
268269
IDS_ERROR_NO_MEDIUM "No medium in device.\n"
269270
END
271+
272+
/* Bus type */
273+
STRINGTABLE
274+
BEGIN
275+
IDS_BUSTYPE_UNKNOWN "Unknown"
276+
IDS_BUSTYPE_SCSI "SCSI"
277+
IDS_BUSTYPE_ATAPI "ATAPI"
278+
IDS_BUSTYPE_ATA "ATA"
279+
IDS_BUSTYPE_1394 "1394"
280+
IDS_BUSTYPE_SSA "SSA"
281+
IDS_BUSTYPE_FIBRE "FibreChannel"
282+
IDS_BUSTYPE_USB "USB"
283+
IDS_BUSTYPE_RAID "RAID"
284+
IDS_BUSTYPE_ISCSI "iSCSI"
285+
IDS_BUSTYPE_SAS "SAS"
286+
IDS_BUSTYPE_SATA "SATA"
287+
IDS_BUSTYPE_SD "SD"
288+
IDS_BUSTYPE_MMC "MMC"
289+
IDS_BUSTYPE_VIRTUAL "Virtual"
290+
IDS_BUSTYPE_FBV "FileBackedVirtual"
291+
IDS_BUSTYPE_SPACES "StorageSpaces"
292+
IDS_BUSTYPE_NVME "NVME"
293+
IDS_BUSTYPE_SCM "SCM"
294+
IDS_BUSTYPE_UFS "UFS"
295+
IDS_BUSTYPE_NVMEOF "NVMEOF"
296+
IDS_BUSTYPE_OTHER "Other"
297+
END

base/system/diskpart/lang/it-IT.rc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,10 @@ END
6363
/* Disk Information Labels */
6464
STRINGTABLE
6565
BEGIN
66-
IDS_DETAIL_INFO_DISK_ID "ID Disco: %s\n"
67-
IDS_DETAIL_INFO_TYPE "Tipo"
68-
IDS_DETAIL_INFO_STATUS "Stato"
66+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
67+
IDS_DETAIL_DISK_ID "ID Disco: %s\n"
68+
IDS_DETAIL_DISK_TYPE "Tipo : %s\n"
69+
IDS_DETAIL_DISK_STATUS "Stato : %s\n"
6970
IDS_DETAIL_INFO_PATH "Percorso : %hu\n"
7071
IDS_DETAIL_INFO_TARGET "Target : %hu\n"
7172
IDS_DETAIL_INFO_LUN_ID "Lun ID : %hu\n"
@@ -274,3 +275,30 @@ BEGIN
274275
IDS_ERROR_INVALID_ARGS "Argomenti non validi\n"
275276
IDS_ERROR_NO_MEDIUM "Nessun medium nel dispositivo.\n"
276277
END
278+
279+
/* Bus type */
280+
STRINGTABLE
281+
BEGIN
282+
IDS_BUSTYPE_UNKNOWN "Unknown"
283+
IDS_BUSTYPE_SCSI "SCSI"
284+
IDS_BUSTYPE_ATAPI "ATAPI"
285+
IDS_BUSTYPE_ATA "ATA"
286+
IDS_BUSTYPE_1394 "1394"
287+
IDS_BUSTYPE_SSA "SSA"
288+
IDS_BUSTYPE_FIBRE "FibreChannel"
289+
IDS_BUSTYPE_USB "USB"
290+
IDS_BUSTYPE_RAID "RAID"
291+
IDS_BUSTYPE_ISCSI "iSCSI"
292+
IDS_BUSTYPE_SAS "SAS"
293+
IDS_BUSTYPE_SATA "SATA"
294+
IDS_BUSTYPE_SD "SD"
295+
IDS_BUSTYPE_MMC "MMC"
296+
IDS_BUSTYPE_VIRTUAL "Virtual"
297+
IDS_BUSTYPE_FBV "FileBackedVirtual"
298+
IDS_BUSTYPE_SPACES "StorageSpaces"
299+
IDS_BUSTYPE_NVME "NVME"
300+
IDS_BUSTYPE_SCM "SCM"
301+
IDS_BUSTYPE_UFS "UFS"
302+
IDS_BUSTYPE_NVMEOF "NVMEOF"
303+
IDS_BUSTYPE_OTHER "Other"
304+
END

base/system/diskpart/lang/pl-PL.rc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,10 @@ END
5656
/* Disk Information Labels */
5757
STRINGTABLE
5858
BEGIN
59-
IDS_DETAIL_INFO_DISK_ID "Dysk ID: %s\n"
60-
IDS_DETAIL_INFO_TYPE "Typ"
61-
IDS_DETAIL_INFO_STATUS "Stan"
59+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
60+
IDS_DETAIL_DISK_ID "Dysk ID : %s\n"
61+
IDS_DETAIL_DISK_TYPE "Typ : %s\n"
62+
IDS_DETAIL_DISK_STATUS "Stan : %s\n"
6263
IDS_DETAIL_INFO_PATH "Ścieżka : %hu\n"
6364
IDS_DETAIL_INFO_TARGET "Docelowy : %hu\n"
6465
IDS_DETAIL_INFO_LUN_ID "Identyfikator LUN : %hu\n"
@@ -267,3 +268,30 @@ BEGIN
267268
IDS_ERROR_INVALID_ARGS "Nieprawidłowe argumenty\n"
268269
IDS_ERROR_NO_MEDIUM "No medium in device.\n"
269270
END
271+
272+
/* Bus type */
273+
STRINGTABLE
274+
BEGIN
275+
IDS_BUSTYPE_UNKNOWN "Unknown"
276+
IDS_BUSTYPE_SCSI "SCSI"
277+
IDS_BUSTYPE_ATAPI "ATAPI"
278+
IDS_BUSTYPE_ATA "ATA"
279+
IDS_BUSTYPE_1394 "1394"
280+
IDS_BUSTYPE_SSA "SSA"
281+
IDS_BUSTYPE_FIBRE "FibreChannel"
282+
IDS_BUSTYPE_USB "USB"
283+
IDS_BUSTYPE_RAID "RAID"
284+
IDS_BUSTYPE_ISCSI "iSCSI"
285+
IDS_BUSTYPE_SAS "SAS"
286+
IDS_BUSTYPE_SATA "SATA"
287+
IDS_BUSTYPE_SD "SD"
288+
IDS_BUSTYPE_MMC "MMC"
289+
IDS_BUSTYPE_VIRTUAL "Virtual"
290+
IDS_BUSTYPE_FBV "FileBackedVirtual"
291+
IDS_BUSTYPE_SPACES "StorageSpaces"
292+
IDS_BUSTYPE_NVME "NVME"
293+
IDS_BUSTYPE_SCM "SCM"
294+
IDS_BUSTYPE_UFS "UFS"
295+
IDS_BUSTYPE_NVMEOF "NVMEOF"
296+
IDS_BUSTYPE_OTHER "Other"
297+
END

base/system/diskpart/lang/pt-PT.rc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,10 @@ END
5858
/* Disk Information Labels */
5959
STRINGTABLE
6060
BEGIN
61-
IDS_DETAIL_INFO_DISK_ID "Disco ID: %s\n"
62-
IDS_DETAIL_INFO_TYPE "Tipo"
63-
IDS_DETAIL_INFO_STATUS "Estado"
61+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
62+
IDS_DETAIL_DISK_ID "Disco ID: %s\n"
63+
IDS_DETAIL_DISK_TYPE "Tipo : %s\n"
64+
IDS_DETAIL_DISK_STATUS "Estado : %s\n"
6465
IDS_DETAIL_INFO_PATH "Caminho : %hu\n"
6566
IDS_DETAIL_INFO_TARGET "Alvo : %hu\n"
6667
IDS_DETAIL_INFO_LUN_ID "LUN ID : %hu\n"
@@ -269,3 +270,30 @@ BEGIN
269270
IDS_ERROR_INVALID_ARGS "Argumento inválido\n"
270271
IDS_ERROR_NO_MEDIUM "No medium in device.\n"
271272
END
273+
274+
/* Bus type */
275+
STRINGTABLE
276+
BEGIN
277+
IDS_BUSTYPE_UNKNOWN "Unknown"
278+
IDS_BUSTYPE_SCSI "SCSI"
279+
IDS_BUSTYPE_ATAPI "ATAPI"
280+
IDS_BUSTYPE_ATA "ATA"
281+
IDS_BUSTYPE_1394 "1394"
282+
IDS_BUSTYPE_SSA "SSA"
283+
IDS_BUSTYPE_FIBRE "FibreChannel"
284+
IDS_BUSTYPE_USB "USB"
285+
IDS_BUSTYPE_RAID "RAID"
286+
IDS_BUSTYPE_ISCSI "iSCSI"
287+
IDS_BUSTYPE_SAS "SAS"
288+
IDS_BUSTYPE_SATA "SATA"
289+
IDS_BUSTYPE_SD "SD"
290+
IDS_BUSTYPE_MMC "MMC"
291+
IDS_BUSTYPE_VIRTUAL "Virtual"
292+
IDS_BUSTYPE_FBV "FileBackedVirtual"
293+
IDS_BUSTYPE_SPACES "StorageSpaces"
294+
IDS_BUSTYPE_NVME "NVME"
295+
IDS_BUSTYPE_SCM "SCM"
296+
IDS_BUSTYPE_UFS "UFS"
297+
IDS_BUSTYPE_NVMEOF "NVMEOF"
298+
IDS_BUSTYPE_OTHER "Other"
299+
END

base/system/diskpart/lang/ro-RO.rc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,10 @@ END
6464
/* Disk Information Labels */
6565
STRINGTABLE
6666
BEGIN
67-
IDS_DETAIL_INFO_DISK_ID "Disc ID: %s\n"
68-
IDS_DETAIL_INFO_TYPE "Tip"
69-
IDS_DETAIL_INFO_STATUS "Stare"
67+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
68+
IDS_DETAIL_DISK_ID "Disc ID: %s\n"
69+
IDS_DETAIL_DISK_TYPE "Tip : %s\n"
70+
IDS_DETAIL_DISK_STATUS "Stare : %s\n"
7071
IDS_DETAIL_INFO_PATH "Cale : %hu\n"
7172
IDS_DETAIL_INFO_TARGET "Țintă : %hu\n"
7273
IDS_DETAIL_INFO_LUN_ID "LUN ID : %hu\n"
@@ -275,3 +276,30 @@ BEGIN
275276
IDS_ERROR_INVALID_ARGS "Argumente nevalide\n"
276277
IDS_ERROR_NO_MEDIUM "Fără mediu în dispozitiv.\n"
277278
END
279+
280+
/* Bus type */
281+
STRINGTABLE
282+
BEGIN
283+
IDS_BUSTYPE_UNKNOWN "Unknown"
284+
IDS_BUSTYPE_SCSI "SCSI"
285+
IDS_BUSTYPE_ATAPI "ATAPI"
286+
IDS_BUSTYPE_ATA "ATA"
287+
IDS_BUSTYPE_1394 "1394"
288+
IDS_BUSTYPE_SSA "SSA"
289+
IDS_BUSTYPE_FIBRE "FibreChannel"
290+
IDS_BUSTYPE_USB "USB"
291+
IDS_BUSTYPE_RAID "RAID"
292+
IDS_BUSTYPE_ISCSI "iSCSI"
293+
IDS_BUSTYPE_SAS "SAS"
294+
IDS_BUSTYPE_SATA "SATA"
295+
IDS_BUSTYPE_SD "SD"
296+
IDS_BUSTYPE_MMC "MMC"
297+
IDS_BUSTYPE_VIRTUAL "Virtual"
298+
IDS_BUSTYPE_FBV "FileBackedVirtual"
299+
IDS_BUSTYPE_SPACES "StorageSpaces"
300+
IDS_BUSTYPE_NVME "NVME"
301+
IDS_BUSTYPE_SCM "SCM"
302+
IDS_BUSTYPE_UFS "UFS"
303+
IDS_BUSTYPE_NVMEOF "NVMEOF"
304+
IDS_BUSTYPE_OTHER "Other"
305+
END

base/system/diskpart/lang/ru-RU.rc

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,13 @@ END
5858
/* Disk Information Labels */
5959
STRINGTABLE
6060
BEGIN
61-
IDS_DETAIL_INFO_DISK_ID "Disk ID: %s\n"
62-
IDS_DETAIL_INFO_TYPE "Тип"
63-
IDS_DETAIL_INFO_STATUS "Состояние"
64-
IDS_DETAIL_INFO_PATH "Path : %hu\n"
65-
IDS_DETAIL_INFO_TARGET "Target : %hu\n"
66-
IDS_DETAIL_INFO_LUN_ID "Lun ID : %hu\n"
61+
IDS_DETAIL_DISK_DESCRIPTION "%s\n"
62+
IDS_DETAIL_DISK_ID "Disk ID : %s\n"
63+
IDS_DETAIL_DISK_TYPE "Тип : %s\n"
64+
IDS_DETAIL_DISK_STATUS "Состояние: %s\n"
65+
IDS_DETAIL_INFO_PATH "Path : %hu\n"
66+
IDS_DETAIL_INFO_TARGET "Target : %hu\n"
67+
IDS_DETAIL_INFO_LUN_ID "Lun ID : %hu\n"
6768
IDS_DETAIL_INFO_LOC_PATH "Путь к диску"
6869
IDS_DETAIL_INFO_CURR_RO_STATE "Текущее состояние ""Только для чтения"""
6970
IDS_DETAIL_INFO_RO "Только для чтения"
@@ -269,3 +270,30 @@ BEGIN
269270
IDS_ERROR_INVALID_ARGS "Ошибка в указании параметров\n"
270271
IDS_ERROR_NO_MEDIUM "No medium in device.\n"
271272
END
273+
274+
/* Bus type */
275+
STRINGTABLE
276+
BEGIN
277+
IDS_BUSTYPE_UNKNOWN "Unknown"
278+
IDS_BUSTYPE_SCSI "SCSI"
279+
IDS_BUSTYPE_ATAPI "ATAPI"
280+
IDS_BUSTYPE_ATA "ATA"
281+
IDS_BUSTYPE_1394 "1394"
282+
IDS_BUSTYPE_SSA "SSA"
283+
IDS_BUSTYPE_FIBRE "FibreChannel"
284+
IDS_BUSTYPE_USB "USB"
285+
IDS_BUSTYPE_RAID "RAID"
286+
IDS_BUSTYPE_ISCSI "iSCSI"
287+
IDS_BUSTYPE_SAS "SAS"
288+
IDS_BUSTYPE_SATA "SATA"
289+
IDS_BUSTYPE_SD "SD"
290+
IDS_BUSTYPE_MMC "MMC"
291+
IDS_BUSTYPE_VIRTUAL "Virtual"
292+
IDS_BUSTYPE_FBV "FileBackedVirtual"
293+
IDS_BUSTYPE_SPACES "StorageSpaces"
294+
IDS_BUSTYPE_NVME "NVME"
295+
IDS_BUSTYPE_SCM "SCM"
296+
IDS_BUSTYPE_UFS "UFS"
297+
IDS_BUSTYPE_NVMEOF "NVMEOF"
298+
IDS_BUSTYPE_OTHER "Other"
299+
END

0 commit comments

Comments
 (0)