4340402690ddf1f55ec9d3afbae6d1f5db3ca628
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS FS utility tool
4 * FILE: base/applications/cmdutils/fsinfo.c
5 * PURPOSE: FSutil file systems information
6 * PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
11 /* Add handlers here for subcommands */
12 static int DrivesMain(int argc
, const TCHAR
*argv
[]);
13 static int DriveTypeMain(int argc
, const TCHAR
*argv
[]);
14 static HandlerItem HandlersList
[] =
16 /* Proc, name, help */
17 { DrivesMain
, _T("drives"), _T("Enumerates the drives") },
18 { DriveTypeMain
, _T("drivetype"), _T("Provides the type of a drive") },
22 DrivesMain(int argc
, const TCHAR
*argv
[])
27 /* Get the drives bitmap */
28 Drives
= GetLogicalDrives();
31 _ftprintf(stderr
, _T("Error: %d\n"), GetLastError());
35 /* And output any found drive */
36 _ftprintf(stdout
, _T("Drives:"));
37 for (i
= 0; i
< 26; i
++)
39 if (Drives
& (1 << i
))
41 _ftprintf(stdout
, _T(" %c:\\"), 'A' + i
);
44 _ftprintf(stdout
, _T("\n"));
50 DriveTypeMain(int argc
, const TCHAR
*argv
[])
54 /* We need a volume (letter) */
57 _ftprintf(stderr
, _T("Usage: fsutil fsinfo drivetype <volume>\n"));
58 _ftprintf(stderr
, _T("\tFor example: fsutil fsinfo drivetype c:\n"));
62 /* Get its drive type and make it readable */
63 Type
= GetDriveType(argv
[1]);
67 _ftprintf(stdout
, _T("%s - unknown drive type\n"), argv
[1]);
70 case DRIVE_NO_ROOT_DIR
:
71 _ftprintf(stdout
, _T("%s - not a root directory\n"), argv
[1]);
75 _ftprintf(stdout
, _T("%s - removable drive\n"), argv
[1]);
79 _ftprintf(stdout
, _T("%s - fixed drive\n"), argv
[1]);
83 _ftprintf(stdout
, _T("%s - remote or network drive\n"), argv
[1]);
87 _ftprintf(stdout
, _T("%s - CD-ROM drive\n"), argv
[1]);
91 _ftprintf(stdout
, _T("%s - RAM disk drive\n"), argv
[1]);
99 PrintUsage(const TCHAR
* Command
)
101 PrintDefaultUsage(_T(" FSINFO "), Command
, (HandlerItem
*)&HandlersList
,
102 (sizeof(HandlersList
) / sizeof(HandlersList
[0])));
106 FsInfoMain(int argc
, const TCHAR
*argv
[])
108 return FindHandler(argc
, argv
, (HandlerItem
*)&HandlersList
,
109 (sizeof(HandlersList
) / sizeof(HandlersList
[0])),