2 * VOL.C - vol internal command.
7 * 03-Dec-1998 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
8 * Replaced DOS calls by Win32 calls.
10 * 08-Dec-1998 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
11 * Added help text ("/?").
13 * 07-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
16 * 18-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
19 * 20-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
25 #ifdef INCLUDE_CMD_VOL
35 PrintVolumeHeader (LPTSTR pszRootPath
)
40 /* get the volume information of the drive */
41 if(!GetVolumeInformation (pszRootPath
, szVolName
, 80, &dwSerialNr
,
44 ErrorMessage (GetLastError (), _T(""));
48 /* print drive info */
49 ConOutPrintf (_T(" Volume in drive %c:"), pszRootPath
[0]);
51 if (szVolName
[0] != '\0')
52 ConOutPrintf (_T(" is %s\n"), szVolName
);
54 ConOutPrintf (_T(" has no label\n"));
56 /* print the volume serial number */
57 ConOutPrintf (_T(" Volume Serial Number is %04X-%04X\n"),
58 HIWORD(dwSerialNr
), LOWORD(dwSerialNr
));
63 INT
cmd_vol (LPTSTR cmd
, LPTSTR param
)
65 TCHAR szRootPath
[] = _T("A:\\");
66 TCHAR szPath
[MAX_PATH
];
68 if (!_tcsncmp (param
, _T("/?"), 2))
70 ConOutPuts (_T("Displays the disk volume label and serial number, if they exist.\n\n"
75 if (param
[0] == _T('\0'))
77 GetCurrentDirectory (MAX_PATH
, szPath
);
78 szRootPath
[0] = szPath
[0];
83 if (param
[1] == _T(':'))
84 szRootPath
[0] = param
[0];
87 error_invalid_drive ();
92 if (!IsValidPathName (szRootPath
))
94 error_invalid_drive ();
98 /* print the header */
99 if (!PrintVolumeHeader (szRootPath
))