Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115/* * 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 INTPrintVolumeHeader (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