mirror of
https://github.com/reactos/reactos.git
synced 2024-08-24 04:08:38 +00:00
115 lines
2.1 KiB
C
115 lines
2.1 KiB
C
/*
|
|
* VOL.C - vol internal command.
|
|
*
|
|
*
|
|
* History:
|
|
*
|
|
* 03-Dec-1998 (Eric Kohl)
|
|
* Replaced DOS calls by Win32 calls.
|
|
*
|
|
* 08-Dec-1998 (Eric Kohl)
|
|
* Added help text ("/?").
|
|
*
|
|
* 07-Jan-1999 (Eric Kohl)
|
|
* Cleanup.
|
|
*
|
|
* 18-Jan-1999 (Eric Kohl)
|
|
* Unicode ready!
|
|
*
|
|
* 20-Jan-1999 (Eric Kohl)
|
|
* Redirection ready!
|
|
*/
|
|
|
|
#include "precomp.h"
|
|
|
|
#ifdef INCLUDE_CMD_VOL
|
|
|
|
|
|
static INT
|
|
PrintVolumeHeader (LPTSTR pszRootPath)
|
|
{
|
|
TCHAR szVolName[80];
|
|
DWORD dwSerialNr;
|
|
|
|
/* get the volume information of the drive */
|
|
if (!GetVolumeInformation(pszRootPath,
|
|
szVolName,
|
|
80,
|
|
&dwSerialNr,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
0))
|
|
{
|
|
ErrorMessage(GetLastError (), NULL);
|
|
return 1;
|
|
}
|
|
|
|
/* print drive info */
|
|
if (szVolName[0] != '\0')
|
|
{
|
|
ConOutResPrintf(STRING_VOL_HELP1, pszRootPath[0],szVolName);
|
|
}
|
|
else
|
|
{
|
|
ConOutResPrintf(STRING_VOL_HELP2, pszRootPath[0]);
|
|
}
|
|
|
|
/* print the volume serial number */
|
|
ConOutResPrintf(STRING_VOL_HELP3, HIWORD(dwSerialNr), LOWORD(dwSerialNr));
|
|
return 0;
|
|
}
|
|
|
|
|
|
INT cmd_vol (LPTSTR param)
|
|
{
|
|
TCHAR szRootPath[] = _T("A:\\");
|
|
TCHAR szPath[MAX_PATH];
|
|
|
|
if (!_tcsncmp(param, _T("/?"), 2))
|
|
{
|
|
ConOutResPaging(TRUE,STRING_VOL_HELP4);
|
|
return 0;
|
|
}
|
|
|
|
nErrorLevel = 0;
|
|
|
|
if (param[0] == _T('\0'))
|
|
{
|
|
GetCurrentDirectory(MAX_PATH, szPath);
|
|
szRootPath[0] = szPath[0];
|
|
}
|
|
else
|
|
{
|
|
_tcsupr (param);
|
|
if (param[1] == _T(':'))
|
|
{
|
|
szRootPath[0] = param[0];
|
|
}
|
|
else
|
|
{
|
|
error_invalid_drive ();
|
|
nErrorLevel = 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if (!IsValidPathName (szRootPath))
|
|
{
|
|
error_invalid_drive ();
|
|
nErrorLevel = 1;
|
|
return 1;
|
|
}
|
|
|
|
/* print the header */
|
|
if (!PrintVolumeHeader (szRootPath))
|
|
{
|
|
nErrorLevel = 1;
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
#endif
|